home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / inet / internet-drafts / draft-ietf-avt-issues-01.txt < prev    next >
Text File  |  1993-10-21  |  173KB  |  3,532 lines

  1. Internet Engineering Task Force          Audio-Video Transport Working Group
  2. INTERNET-DRAFT                                                H. Schulzrinne
  3. draft-ietf-avt-issues-01.txt                          AT&T Bell Laboratories
  4.                                                             October 20, 1993
  5.                                                           Expires:  03/01/94
  6.  
  7. Issues in Designing a Transport Protocol for Audio and Video Conferences and
  8.                other Multiparticipant Real-Time Applications
  9.  
  10.  
  11. Status of this Memo
  12.  
  13.  
  14. This document is an Internet Draft.  Internet Drafts are working documents
  15. of the Internet Engineering Task Force (IETF), its Areas, and its Working
  16. Groups.   Note that other groups may also distribute working documents as
  17. Internet Drafts.
  18.  
  19. Internet Drafts are draft documents valid for a maximum of six months.
  20. Internet Drafts may be updated, replaced, or obsoleted by other documents
  21. at any time.   It is not appropriate to use Internet Drafts as reference
  22. material or to cite them other than as a ``working draft'' or ``work in
  23. progress.''
  24.  
  25. Please check the I-D abstract listing contained in each Internet Draft
  26. directory to learn the current status of this or any other Internet Draft.
  27.  
  28. Distribution of this document is unlimited.
  29.  
  30.  
  31.                                   Abstract
  32.  
  33.      This memorandum is a companion document to the current version
  34.     of the RTP protocol specification draft-ietf-avt-rtp-*.{txt,ps}.
  35.     It discusses aspects of transporting real-time services (such as
  36.     voice or video) over the Internet.   It compares and evaluates
  37.     design alternatives for a real-time transport protocol, providing
  38.     rationales for the design decisions made for RTP. Also covered are
  39.     issues of port assignment and multicast address allocation.   A
  40.     comprehensive glossary of terms related to multimedia conferencing
  41.     is provided.
  42.  
  43.  
  44. This document is a product of the Audio-Video Transport working group within
  45. the Internet Engineering Task Force.  Comments are solicited and should be
  46. addressed to the working group's mailing list at rem-conf@es.net and/or the
  47. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  48.  
  49. author(s).
  50.  
  51.  
  52. Contents
  53.  
  54.  
  55. 1 Introduction                                                            4
  56.  
  57.   1.1 T. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
  58.  
  59. 2 Goals                                                                   7
  60.  
  61. 3 Services                                                                9
  62.  
  63.   3.1 Duplex or Simplex? . . . . . . . . . . . . . . . . . . . . . . . . 12
  64.  
  65.   3.2 Framing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
  66.  
  67.   3.3 Version Identification . . . . . . . . . . . . . . . . . . . . . . 14
  68.  
  69.   3.4 Conference Identification. . . . . . . . . . . . . . . . . . . . . 14
  70.  
  71.     3.4.1Demultiplexing. . . . . . . . . . . . . . . . . . . . . . . . . 15
  72.  
  73.     3.4.2Aggregation . . . . . . . . . . . . . . . . . . . . . . . . . . 15
  74.  
  75.   3.5 Media Encoding Identification. . . . . . . . . . . . . . . . . . . 16
  76.  
  77.     3.5.1Audio Encodings . . . . . . . . . . . . . . . . . . . . . . . . 17
  78.  
  79.     3.5.2Video Encodings . . . . . . . . . . . . . . . . . . . . . . . . 19
  80.  
  81.   3.6 Playout Synchronization. . . . . . . . . . . . . . . . . . . . . . 19
  82.  
  83.     3.6.1Synchronization Methods . . . . . . . . . . . . . . . . . . . . 21
  84.  
  85.     3.6.2Detection of Synchronization Units. . . . . . . . . . . . . . . 22
  86.  
  87.     3.6.3Interpretation of Synchronization Bit . . . . . . . . . . . . . 24
  88.  
  89.     3.6.4Interpretation of Timestamp . . . . . . . . . . . . . . . . . . 25
  90.  
  91.     3.6.5End-of-talkspurt indication . . . . . . . . . . . . . . . . . . 29
  92.  
  93.     3.6.6Recommendation. . . . . . . . . . . . . . . . . . . . . . . . . 30
  94.  
  95.   3.7 Segmentation and Reassembly. . . . . . . . . . . . . . . . . . . . 30
  96.  
  97.   3.8 Source Identification. . . . . . . . . . . . . . . . . . . . . . . 31
  98.  
  99.  
  100. H. Schulzrinne                   Expires 03/01/94                   [Page 2]
  101. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  102.  
  103.     3.8.1Bridges, Translators and End Systems. . . . . . . . . . . . . . 31
  104.  
  105.     3.8.2Address Format Issues . . . . . . . . . . . . . . . . . . . . . 33
  106.  
  107.     3.8.3Globally unique identifiers . . . . . . . . . . . . . . . . . . 34
  108.  
  109.     3.8.4Locally unique addresses. . . . . . . . . . . . . . . . . . . . 35
  110.  
  111.   3.9 Energy Indication. . . . . . . . . . . . . . . . . . . . . . . . . 37
  112.  
  113.   3.10Error Control. . . . . . . . . . . . . . . . . . . . . . . . . . . 37
  114.  
  115.   3.11Security and Privacy . . . . . . . . . . . . . . . . . . . . . . . 39
  116.  
  117.     3.11.1Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . 39
  118.  
  119.     3.11.2Confidentiality . . . . . . . . . . . . . . . . . . . . . . . . 40
  120.  
  121.     3.11.3Message Integrity and Authentication. . . . . . . . . . . . . . 41
  122.  
  123.   3.12Security for RTP vs.  PEM. . . . . . . . . . . . . . . . . . . . . 42
  124.  
  125.   3.13Quality of Service Control . . . . . . . . . . . . . . . . . . . . 44
  126.  
  127.     3.13.1QOS Measures. . . . . . . . . . . . . . . . . . . . . . . . . . 44
  128.  
  129.     3.13.2Remote measurements . . . . . . . . . . . . . . . . . . . . . . 45
  130.  
  131.     3.13.3Monitoring by Third Party . . . . . . . . . . . . . . . . . . . 46
  132.  
  133. 4 Conference Control Protocol                                            46
  134.  
  135. 5 The Use of Profiles                                                    46
  136.  
  137. 6 Port Assignment                                                        47
  138.  
  139. 7 Multicast Address Allocation                                           48
  140.  
  141.   7.1 Channel Sensing. . . . . . . . . . . . . . . . . . . . . . . . . . 49
  142.  
  143.   7.2 Global Reservation Channel with Scoping. . . . . . . . . . . . . . 50
  144.  
  145.   7.3 Local Reservation Channel. . . . . . . . . . . . . . . . . . . . . 50
  146.  
  147.     7.3.1Hierarchical Allocation with Servers. . . . . . . . . . . . . . 51
  148.  
  149.     7.3.2Distributed Hierarchical Allocation . . . . . . . . . . . . . . 51
  150.  
  151.   7.4 Restricting Scope by Limiting Time-to-Live . . . . . . . . . . . . 52
  152.  
  153. H. Schulzrinne                   Expires 03/01/94                   [Page 3]
  154. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  155.  
  156. 8 Security Considerations                                                52
  157.  
  158. A Glossary                                                               52
  159.  
  160. B Address of Author                                                      62
  161.  
  162.  
  163. 1 Introduction
  164.  
  165.  
  166. This memorandum
  167.  
  168.  
  169. 1.1 T
  170.  
  171.  
  172. he transport protocol for real-time applications (RTP) discussed in the pr
  173. this memorandum aims to provide services commonly required by interactive
  174. multimedia conferences, such as playout synchronization, demultiplexing,
  175. media identification and active-party identification.  However, RTP is not
  176. restricted to multimedia conferences; it is anticipated that other real-time
  177. services such as remote data acquisition and control may find its services
  178. of use.
  179.  
  180. In this context, a conference describes associations that are characterized
  181. by the participation of two or more agents, interacting in real time
  182. with one or more media of potentially different types.   The agents are
  183. anticipated to be human, but may also be measurement devices, remote media
  184. servers, simulators and the like.    Both two-party and multiple-party
  185. associations are to be supported, where one or more agents can take active
  186. roles, i.e., generate data.  Thus, applications not commonly considered a
  187. conference fall under this wider definition, for example, one-way media such
  188. as the network equivalent of closed-circuit television or radio, traditional
  189. two-party telephone conversations or real-time distributed simulations.
  190. Even though intended for real-time interactive applications, the use of
  191. RTP for the storage and transmission of recorded real-time data should be
  192. possible, with the understanding that the interpretation of some fields such
  193. as timestamps may be affected by this off-line mode of operation.
  194.  
  195. RTP uses the services of an end-to-end transport protocol such as UDP,
  196. TCP, OSI TP1 or TP4, ST-II or the like(1) .   The services used are:
  197. end-to-end delivery, framing, demultiplexing and multicast.  The underlying
  198. network is not assumed to be reliable and can be expected to lose, corrupt,
  199. arbitrarily delay and reorder packets.   However, the use of RTP within
  200. ------------------------------
  201.  1. ST-II is not properly a transport protocol, as it is visible to
  202. intermediate nodes, but it provides services such as process demultiplexing
  203. commonly associated with transport protocols.
  204.  
  205.  
  206. H. Schulzrinne                   Expires 03/01/94                   [Page 4]
  207. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  208.  
  209. quality-of-service (e.g., rate) controlled networks is anticipated to be of
  210. particular interest.  Network layer support for multicasting is desirable,
  211. but not required.  RTP is supported by a real-time control protocol (RTCP)
  212. in a relationship similar to that between IP and ICMP. However, RTP can be
  213. used, with reduced functionality, without a control protocol.  The control
  214. protocol RTCP provides minimum functionality for maintaining conference
  215. state for one or more flows within a single transport association.  RTCP
  216. is not guaranteed to be reliable; each participant simply sends the local
  217. information periodically to all other conference participants.
  218.  
  219. As an alternative, RTP could be used as a transport protocol layered
  220. directly on top of IP, potentially increasing performance and reducing
  221. header overhead.  This may be attractive as the services provided by UDP,
  222. checksumming and demultiplexing, may not be needed for multicast real-time
  223. conferencing applications.   This aspect remains for further study.   The
  224. relationships between RTP and RTCP to other protocols of the Internet
  225. protocol suite are depicted in Fig. 1.
  226.  
  227. +--------------------------+-----------------------------+
  228. |                          |     conference controller   |
  229. |    media application     |-------------------+         |
  230. |                          |  conf. ctl. prot. |         |
  231. +--------------------------+-------------------+---------+
  232. |                |       RTCP        |                   |
  233. |                +-------------------+                   |
  234. |                         RTP                            |
  235. +--------+-----------------+                             |
  236. |        |       UDP       |                             |
  237. | ST-II  +-----------------+-------------+               |
  238. |                |         IP            |               |
  239. +--------------------------------------------------------+
  240. |                         AAL5                           |
  241. +--------------------------------------------------------+
  242.       Figure 1:  Embedding of RTP and RTCP in Internet protocol stack
  243.  
  244. Conferences  encompassing  several  media  are  managed  by  a  (reliable)
  245. conference control protocol, whose definition is outside the scope of this
  246. note.    Some aspects of its functionality, however, are described in
  247. Section 4.
  248.  
  249. Within this working group, some common encoding rules and algorithms for
  250. media have been specified, keeping in mind that this aspect is largely
  251. independent of the remainder of the protocol.  Without this specification,
  252. interoperability cannot be achieved.   It is intended, however, to keep
  253. the two aspects as separate RFCs as changes in media encoding should
  254. be independent of the transport aspects.    The encoding specification
  255. includes issues such as byte order for multi-byte samples, sample order
  256. for multi-channel audio, the format of state information for differential
  257. encodings, the segmentation of encoded video frames into packets, and the
  258.  
  259.  
  260. H. Schulzrinne                   Expires 03/01/94                   [Page 5]
  261. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  262.  
  263. like.
  264.  
  265. When used for multimedia services, RTP sources will have to be able to
  266. convey the type of media encoding used to the receivers.   The number
  267. of encodings potentially used is rather large, but a single application
  268. will likely restrict itself to a small subset of that.   To allow the
  269. participants in conferences to unambiguously communicate to each other the
  270. current encoding, the working group is defining a set of encoding names to
  271. be registered with the Internet Assigned Numbers Authority (IANA). Also,
  272. short integers for a default mapping of common encodings are specified.
  273.  
  274. The issue of port assignment will be discussed in more detail in Section 6.
  275. It should be emphasized, however, that UDP port assignment does not imply
  276. that all underlying transport mechanisms share this or a similar port
  277. mechanism.
  278.  
  279. This memorandum aims to summarize some of the discussions held within the
  280. audio-video transport (AVT) working group chaired by Stephen Casner, but
  281. the opinions are the author's own.  Where possible, references to previous
  282. work are included, but the author realizes that the attribution of ideas is
  283. far from complete.   The memorandum builds on operational experience with
  284. Van Jacobson's and Steve McCanne's vat audio conferencing tool as well as
  285. implementation experience with the author's Nevot network voice terminal.
  286. This note will frequently refer to NVP [1], the network voice protocol,
  287. a protocol used in two versions for early Internet wide-area packet voice
  288. experiments.   CCITT has standardized as recommendations G.764 and G.765
  289. a packet voice protocol stack for use in digital circuit multiplication
  290. equipment.
  291.  
  292. The  name  RTP  was  chosen  to  reflect  the  fact  that  audio  and  video
  293. conferences may not be the only applications employing its services, while
  294. the real-time nature of the protocol is important, setting it apart from
  295. other multimedia-transport mechanisms, such as the MIME multimedia mail
  296. effort [2].
  297.  
  298. The remainder of this memorandum is organized as follows.    Section 2
  299. summarizes the design goals of this real-time transport protocol.   Then,
  300. Section 3 describes the services to be provided in more detail.  Section 4
  301. briefly outlines some of the services added by a higher-layer conference
  302. control protocol;  a more detailed description is outside the scope of
  303. this document.   Two appendices discuss the issues of port assignment and
  304. multicast address allocation, respectively.  A glossary defines terms and
  305. acronyms, providing references for further detail.   The actual protocol
  306. specification embodying the recommendation and conclusions of this report is
  307. contained in a separate document.
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315. H. Schulzrinne                   Expires 03/01/94                   [Page 6]
  316. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  317.  
  318. 2 Goals
  319.  
  320.  
  321. Design decisions should be measured against the following goals,  not
  322. necessarily listed in order of importance:
  323.  
  324.  
  325. content flexibility: While  the  primary  applications  that  motivate  the
  326.     protocol  design  are  conference  voice  and  video,  it  should  be
  327.     anticipated  that  other  applications  may  also  find  the  services
  328.     provided by the protocol useful.   Some examples include distribution
  329.     audio/video (for example, the ``Radio Free Ethernet''application by
  330.     Sun), distributed simulation and some forms of (loss-tolerant) remote
  331.     data acquisition (for example, active badge systems [3,4]).  Note that
  332.     it is possible that the same packet header field may be interpreted in
  333.     different ways depending on the content (e.g., a synchronization bit
  334.     may be used to indicate the beginning of a talkspurt for audio and the
  335.     beginning of a frame for video).   Also, new formats of established
  336.     media, for example, high-quality multi-channel audio or combined audio
  337.     and video sources, should be anticipated where possible.
  338.  
  339. extensible: Researchers and implementors within the Internet community are
  340.     currently only beginning to explore real-time multimedia services such
  341.     as video conferences.   Thus, the RTP should be able to incorporate
  342.     additional  services  as  operational  experience  with  the  protocol
  343.     accumulates and as applications not originally anticipated find its
  344.     services useful.   The same mechanisms should also allow experimental
  345.     applications  to  exchange  application-specific  information  without
  346.     jeopardizing interoperability with other applications.   Extensibility
  347.     is also desirable as it will hopefully speed along the standardization
  348.     effort, making the consequences of leaving out some group's favorite
  349.     fixed header field less drastic.
  350.  
  351.     It should be understood that extensibility and flexibility may conflict
  352.     with the goals of bandwidth and processing efficiency.
  353.  
  354. independent of lower-layer protocols: RTP should make as few assumptions
  355.     about the underlying transport protocol as possible.  It should, for
  356.     example, work reasonably well with UDP, TCP, ST-II, OSI TP, VMTP and
  357.     experimental protocols, for example, protocols that support resource
  358.     reservation and quality-of-service guarantees.    Naturally, not all
  359.     transport protocols are equally suited for real-time services;  in
  360.     particular, TCP may introduce unacceptable delays over anything but
  361.     low-error-rate LANs.  Also, protocols that deliver streams rather than
  362.     packets needs additional framing services as discussed in Section 3.2.
  363.  
  364.     It remains to be discussed whether RTP may use services provided by the
  365.     lower-layer protocols for its own purposes (time stamps and sequence
  366.     numbers, for example).
  367.  
  368.  
  369.  
  370. H. Schulzrinne                   Expires 03/01/94                   [Page 7]
  371. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  372.  
  373.     The goal of independence from lower-layer considerations also affects
  374.     the issue of address representation.   In particular, anything too
  375.     closely tied to the current IP 4-byte addresses may face early
  376.     obsolescence.  It is to be anticipated, however, that experience gained
  377.     will suggest a new protocol revision in any event by that time.
  378.  
  379. bridge-compatible: Operational experience has shown that RTP-level bridges
  380.     are necessary and desirable for a number of reasons.    First, it
  381.     may be desirable to aggregate several media streams into a single
  382.     stream and then retransmit it with possibly different encoding, packet
  383.     size or transport protocol.   A packet ``translator'' that achieves
  384.     multicasting by user-level copying may be needed where multicast
  385.     tunnels or IP connectivity are unavailable or the end-systems are not
  386.     multicast-capable.
  387.  
  388. bandwidth efficient: It is anticipated that the protocol will be used in
  389.     networks with a wide range of bandwidths and with a variety of media
  390.     encodings.  Despite increasing bandwidths within the national backbone
  391.     networks,  bandwidth efficiency will continue to be important for
  392.     transporting conferences across 56 kb links, office-to-home high-speed
  393.     modem connections and international links.   To minimize end-to-end
  394.     delay and the effect of lost packets, packetization intervals have to
  395.     be limited, which, in combination with efficient media encodings, leads
  396.     to short packet sizes.  Generally, packets containing 16 to 32 ms of
  397.     speech are considered optimal [5--7].  For example, even with a 65 ms
  398.     packetization interval, a 4800 b/s encoding produces 39 byte packets.
  399.     Current Internet voice experiments use packets containing around 20 ms
  400.     of audio, which translates into 160 bytes of audio information coded
  401.     at 64 kb/s.  Video packets are typically much longer, so that header
  402.     overhead is less of a concern.
  403.  
  404.     For UDP multicast (without counting the overhead of source routing as
  405.     currently used in tunnels or a separate IP encapsulation as planned),
  406.     IPv4 incurs 20 bytes and UDP an additional 8 bytes of header overhead,
  407.     to which datalink layer headers of at least 4 bytes must be added.
  408.     With RTP header lengths between 4 and 8 bytes, the total overhead
  409.     amounts to between 36 and 40 (or more) bytes per audio or video packet.
  410.     For 160-byte audio packets, the overhead of 8-byte RTP headers together
  411.     with UDP, IP and PPP (as an example of a datalink protocol) headers is
  412.     25%.   For low bitrate coding, packet headers can easily double the
  413.     necessary bit rate.
  414.  
  415.     Thus, it appears that any fixed headers beyond eight bytes would have
  416.     to make a significant contribution to the protocol's capabilities as
  417.     such long headers could stand in the way of running RTP applications
  418.     over low-speed links.   The current fixed header lengths for NVP and
  419.     vat are 4 and 8 bytes, respectively.  It is interesting to note that
  420.     G.764 has a total header overhead, including the LAPD data link layer,
  421.     of only 8 bytes, as the voice transport is considered a network-layer
  422.     protocol.  The overhead is split evenly between layers 2 and 3.
  423.  
  424.  
  425. H. Schulzrinne                   Expires 03/01/94                   [Page 8]
  426. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  427.  
  428.     Bandwidth efficiency can be achieved by transporting non-essential or
  429.     slowly changing protocol state in optional fields or in a separate
  430.     low-bandwidth control protocol.   Also, header compression [8] may be
  431.     used.
  432.  
  433. international: Even now, audio and video conferencing tools are used far
  434.     beyond the North American continent.  It would seem appropriate to give
  435.     considerations to internationalization concerns, for example to allow
  436.     for the European A-law audio companding and non-US-ASCII character sets
  437.     in textual data such as site identification.
  438.  
  439. processing efficient: With arrival rates of on the order of 40 to 50
  440.     packets per second for a single voice or video source, per-packet
  441.     processing  overhead  may  become  a  concern,  particularly  if  the
  442.     protocol is to be implemented on other than high-end workstations.
  443.     Multiplication and division operations should be avoided where possible
  444.     and fields should be aligned to their natural size, i.e., an n-byte
  445.     integer is aligned on an n-byte multiple, where possible.
  446.  
  447. implementable now: Given the anticipated lifetime and experimental nature
  448.     of the protocol, it must be implementable with current hardware and
  449.     operating systems.  That does not preclude that hardware and operating
  450.     systems geared towards real-time services may improve the performance
  451.     or  capabilities  of  the  protocol,  e.g.,  allow  better  intermedia
  452.     synchronization.
  453.  
  454.  
  455. 3 Services
  456.  
  457.  
  458. The services that may be provided by RTP are summarized below.  Note that
  459. not all services have to be offered.  Services anticipated to be optional
  460. are marked with an asterisk.
  461.  
  462.  
  463.   o framing (*)
  464.  
  465.   o demultiplexing by conference/association (*)
  466.  
  467.   o demultiplexing by media source
  468.  
  469.   o demultiplexing by conference
  470.  
  471.   o determination of media encoding
  472.  
  473.   o playout synchronization between a source and a set of destinations
  474.  
  475.   o error detection (*)
  476.  
  477.   o encryption (*)
  478.  
  479. H. Schulzrinne                   Expires 03/01/94                   [Page 9]
  480. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  481.  
  482.   o quality-of-service monitoring (*)
  483.  
  484.  
  485. In the following sections, we will discuss how these services are reflected
  486. in the proposed packet header.   Information to be conveyed within the
  487. conference can be roughly divided into information that changes with every
  488. data packet and other information that stays constant for longer time
  489. periods.  State information that does not change with every packet can be
  490. carried in several different ways:
  491.  
  492.  
  493. as a fixed part of the RTP header: This method is easiest to decode and
  494.     ensures state synchronization between sender and receiver(s), but can
  495.     be bandwidth inefficient or restrict the amount of state information to
  496.     be conveyed.
  497.  
  498. as a header option: The information is only carried when needed.    It
  499.     requires more processing by the sending and receiving application.  If
  500.     contained in every packet, it is also less bandwidth-efficient than the
  501.     first method.
  502.  
  503. within RTCP packets: This approach is roughly equivalent to header options
  504.     in terms of processing and bandwidth efficiency.    Some means of
  505.     identifying when a particular option takes effect within the data
  506.     stream may have to be provided.
  507.  
  508. within a multicast conference announcement: Instead of residing at a well-
  509.     known  conference  server,  information  about  on-going  or  upcoming
  510.     conferences may be multicast to a well-known multicast address.
  511.  
  512. within conference control: The  state  information  is  conveyed  when  the
  513.     conference is established or when the information changes.  As for RTCP
  514.     packets, a synchronization mechanism between data and control may be
  515.     required for certain information.
  516.  
  517. through a conference directory: This is a variant of the conference control
  518.     mechanism, with a (distributed) directory at a well-known (multicast)
  519.     address maintaining state information about on-going or scheduled
  520.     conferences.    Changing state information during a conference is
  521.     probably more difficult than with conference control as participants
  522.     need to be told to look at the directory for changed information.
  523.     Thus, a directory is probably best suited to hold information that will
  524.     persist through the life of the conference, for example, its multicast
  525.     group, list of media encodings, title and organizer.
  526.  
  527.  
  528. The first two methods are examples of in-band signaling, the others of
  529. out-of-band signaling.
  530.  
  531. Options can be encoded in a number of ways, resulting in different tradeoffs
  532. between flexibility,  processing overhead and space requirements.    In
  533.  
  534. H. Schulzrinne                  Expires 03/01/94                  [Page 10]
  535. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  536.  
  537. general, options consists of a type field, possibly a length field, and
  538. the actual option value.   The length field can be omitted if the length
  539. is implied by the option type.   Implied-length options save space, but
  540. require special treatment while processing.   While options with explicit
  541. length that are added in later protocol versions are backwards-compatible
  542. (the receiver can just skip them), implied-length options cannot be added
  543. without modifying all receivers, unless they are marked as such and all have
  544. a known length.  As an example, IP defines two implied-length options, no-op
  545. and end-of-option, both with a length of one octet.  Both CLNP and IP follow
  546. the type-length-data model, with different substructure of the type field.
  547.  
  548. For indicating the extent of options, a number of alternatives have been
  549. suggested.
  550.  
  551.  
  552. option length: The fixed header contains a field containing the length of
  553.     the options, as used for IP. This makes skipping over options easy, but
  554.     consumes precious header space.
  555.  
  556. end-of-options bit: Each option contains a special bit that is set only for
  557.     the last option in the list.  In addition, the fixed header contains
  558.     a flag indicating that options are present.   This conserves space
  559.     in the fixed header, at the expense of reducing usable space within
  560.     options, e.g., reducing the number of possible option types or the
  561.     maximum option length.  It also makes skipping options somewhat more
  562.     processing-intensive, particulary if some options have implied lengths
  563.     and others have explicit lengths.  Skipping through the options list
  564.     can be accelerated slightly by starting options with a length field.
  565.  
  566. end-of-options option: A special option type indicates the end of the
  567.     option list, with a bit in the fixed header indicating the presence of
  568.     options.  The properties of this approach are similar to the previous
  569.     one, except that it can be expected to take up more header space.
  570.  
  571. options directory: An options-present bit in the fixed header indicates
  572.     the presence of an options directory.    The options directory in
  573.     turn contains a length field for the options list and possibly bits
  574.     indicating the presence of certain options or option classes.   The
  575.     option length makes skipping options fast, while the presence bits
  576.     allow a quick decision whether the options list should be scanned for
  577.     relevant options.  If all options have a known, fixed length, the bit
  578.     mask can be used to directly access certain options, without having
  579.     to traverse parts of the options list.   The drawback is increased
  580.     header space and the necessity to create the directory.  If options are
  581.     explicitly coded in the bit mask, the type, number and numbering of
  582.     options is restricted.  This approach is used by PIP [9].
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589. H. Schulzrinne                  Expires 03/01/94                  [Page 11]
  590. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  591.  
  592. 3.1 Duplex or Simplex?
  593.  
  594.  
  595. In terms of information flow, protocols can be roughly divided into three
  596. categories:
  597.  
  598.  
  599. 1. For one instance of a protocol, packets travel only in one direction;
  600.     i.e., the receiver has no way to directly influence the sender.  UDP is
  601.     an example of such a protocol.
  602.  
  603. 2. While data only travels in one direction, the receiver can send back
  604.     control packets, for example, to accept or reject a connection, or
  605.     request retransmission.   ST-II in its standard simplex mode is an
  606.     example; TCP is symmetric (see next item), but during a file transfer,
  607.     it typically operates in this mode, where one side sends data and the
  608.     receiver of the data returns acknowledgements.
  609.  
  610. 3. The protocol is fully symmetric during the data transfer phase, with
  611.     user data and control information travelling in both directions.  TCP
  612.     is a symmetric protocol.
  613.  
  614.  
  615. Note that bidirectional data flow can usually be simulated by two or more
  616. one-directional data flows in opposite directions, however, if the data
  617. sinks need to transmit control information to the source, a decoupled stream
  618. in the reverse direction will not do without additional machinery to bridge
  619. the gap between the two protocol state machines.
  620.  
  621. For  most  of  the  anticipated  applications  for  a  real-time  transport
  622. protocol, one-directional data flow appears sufficient.  Also, in general,
  623. bidirectional flows may be difficult to maintain in one-to-many settings
  624. commonly found in conferences.    Real-time requirements combined with
  625. network latency make achieving reliability through retransmission difficult,
  626. eliminating another reason for a bidirectional communication channel.  Thus,
  627. we will focus only on control flow from the receiver of a data flow to its
  628. sender.   For brevity, we will refer to packets of this control flow as
  629. reverse control packets.
  630.  
  631. There are at least two areas within multimedia conferences where a receiver
  632. needs to communicate control information back to the source.  First, the
  633. sender may want or need to know how well the transmission is proceding,
  634. as traditional feedback through acknowledgements is missing (and usually
  635. infeasible due to acknowledgment implosion).  Secondly, the receiver should
  636. be able to request a selective update of its state, for example, to obtain
  637. missing image blocks after joining an on-going conference.  Note that for
  638. both uses, unicast rather than multicast is appropriate.
  639.  
  640. Three approaches allowing the sender to distinguish reverse control packets
  641. from data packets are compared here:
  642.  
  643.  
  644. H. Schulzrinne                  Expires 03/01/94                  [Page 12]
  645. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  646.  
  647. sender port equals reverse port, marked packet: The  same  port  number  is
  648.     used both for data and return control messages.  Packets then have to
  649.     be marked to allow distinguishing the two.   Either the presence of
  650.     certain options would indicate a reverse control packet, or the options
  651.     themselves would be interpreted as reverse control information, with
  652.     the rest of the packet treated as regular data.  The latter approach
  653.     appears to be the most flexible and symmetric, and is similar in
  654.     spirit to transport protocols with piggy-backed acknowledgements as in
  655.     TCP. Also, since several conferences with different multicast addresses
  656.     may be using the same port number, the receiver has to include the
  657.     multicast address in its reverse control messages.    As a final
  658.     identification, the control packets have to bear the flow identifier
  659.     they belong to.   The scheme has the grave disadvantage that every
  660.     application on a host has to receive the reverse control messages and
  661.     decide whether it involves a flow it is responsible for.
  662.  
  663. single reverse port: Reverse control packets for all flows use a single
  664.     port that differs from the data port.  Since the type of the packet
  665.     (control vs.    data) is identified by the port number, only the
  666.     multicast address and flow number still needs to be included, without a
  667.     need for a distinguishing packet format.  Adding a port means that port
  668.     negotiation is somewhat more complicated; also, as in the first scheme,
  669.     the application still has to demultiplex incoming control messages.
  670.  
  671. different reverse port for each flow: This method requires that each source
  672.     makes it known to all receivers on which port it wishes to receive
  673.     reverse control messages.  Demultiplexing based on flow and multicast
  674.     address is no longer necessary.   However, each participant sending
  675.     data and expecting return control messages has to communicate the port
  676.     number to all other participants.   Since the reverse control port
  677.     number should remain constant throughout the conference (except after
  678.     application restarts), a periodic dissemination of that information is
  679.     sufficient.  Distributing the port information has the advantage that
  680.     it gives applications the flexibility to designate only certain flows
  681.     as potential recipients of reverse control information.
  682.  
  683.     Unfortunately, the delay in acquiring the reverse control port number
  684.     when  joining  an  on-going  conference  may  make  one  of  the  more
  685.     interesting uses of a reverse control channel difficult to implement,
  686.     namely the request by a new arrival to the sender to transmit the
  687.     complete current state (e.g., image) rather than changes only.
  688.  
  689.  
  690. 3.2 Framing
  691.  
  692.  
  693. To satisfy the goal of transport independence, we cannot assume that the
  694. lower layer provides framing.   (Consider TCP as an example; it would
  695. probably not be used for real-time applications except possibly on a local
  696. network, but it may be useful in distributing recorded audio or video
  697. segments.)  It may also be desirable to pack several RTPDUs into a single
  698.  
  699. H. Schulzrinne                  Expires 03/01/94                  [Page 13]
  700. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  701.  
  702. TPDU.
  703.  
  704. The obvious solution is to provide for an optional message length prefixed
  705. to the actual packet.    If the underlying protocol does not message
  706. delineation, both sender and receiver would know to use the message length.
  707. If used to carry multiple RTPDUs, all participants would have to arrive
  708. at a mutual agreement as to its use.   A 16-bit field should cover most
  709. needs, but appears to break the 4-byte alignment for the rest of the header.
  710. However, an application would read the message length first and then copy
  711. the appropriate number of bytes into a buffer, suitably aligned.
  712.  
  713.  
  714. 3.3 Version Identification
  715.  
  716.  
  717. Humility suggests that we anticipate that we may not get the first iteration
  718. of the protocol right.   In order to avoid ``flag days'' where everybody
  719. shifts to a new protocol, a version identifier could ensure continued
  720. interoperability.  Alternatively, a new port could be used, as long as only
  721. one port (or at most a few ports) is used for all media.  The difficulty in
  722. interworking between the current vat and NVP protocols further affirms the
  723. desirability of a version identifier.  However, the version identifier can
  724. be anticipated to be the most static of all proposed header fields.  Since
  725. the length of the header and the location and meaning of the option length
  726. field may be affected by a version change, encoding the version within an
  727. optional field is not feasible.
  728.  
  729. Putting the version number into the control protocol packets would make RTCP
  730. mandatory and would make rapid scanning of conferences significantly more
  731. difficult.
  732.  
  733. vat currently offers a 2-bit version field, while this capability is missing
  734. from NVP. Given the low bit usage and their utility in other contexts (IP,
  735. ST-II), it may be prudent to include a version identifier.  To be useful,
  736. any version field must be placed at the very beginning of the header.
  737. Assigning an initial version value of one to RTP allows interoperability
  738. with the current vat protocol.
  739.  
  740.  
  741. 3.4 Conference Identification
  742.  
  743.  
  744. A conference identifier (conference ID) could serve two mutually exclusive
  745. functions:   providing another level of demultiplexing or a means of
  746. logically aggregating flows with different network addresses and port
  747. numbers.  vat specifies a 16-bit conference identifier.
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754. H. Schulzrinne                  Expires 03/01/94                  [Page 14]
  755. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  756.  
  757. 3.4.1 Demultiplexing
  758.  
  759.  
  760. Demultiplexing by RTP allows one association characterized by destination
  761. address and port number to carry several distinct conferences.   However,
  762. this appears to be necessary only if the number of conferences exceeds the
  763. demultiplexing capability available through (multicast) addresses and port
  764. numbers.
  765.  
  766. Efficiency arguments suggest that combining several conferences or media
  767. within a single multicast group is not desirable.    Combining several
  768. conferences or media within a single multicast address reduces the bandwidth
  769. efficiency  afforded  by  multicasting  if  the  sets  of  destinations  are
  770. different.   Also, applications that are not interested in a particular
  771. conference or capable of dealing with particular medium are still forced to
  772. handle the packets delivered for that conference or medium.  Consider as an
  773. example two separate applications, one for audio, one for video.  If both
  774. share the same multicast address and port, being differentiated only by the
  775. conference identifier, the operating system has to copy each incoming audio
  776. and video packet into two application buffers and perform a context switch
  777. to both applications, only to have one immediately discard the incoming
  778. packet.
  779.  
  780. Given that application-layer demultiplexing has strong negative efficiency
  781. implications and given that multicast addresses are not an extremely
  782. scarce commodity, there seems to be no reason to burden every application
  783. with maintaining and checking conference identifiers for the purpose of
  784. demultiplexing.   However, if this protocol is to be used as a transport
  785. protocol, demultiplexing capability is required.
  786.  
  787. It is also not recommended to use a conference identifier to distinguish
  788. between different encodings, as it would be difficult for the application
  789. to decide whether a new conference identifier means that a new conference
  790. has arrived or simply all participants should be moved to the new conference
  791. with a different encoding.   Since the encoding may change for some but
  792. not all participants, we could find ourselves breaking a single logical
  793. conference into several pieces, with a fairly elaborate control mechanism to
  794. decide which conferences logically belong together.
  795.  
  796.  
  797. 3.4.2 Aggregation
  798.  
  799.  
  800. Particularly within a network with a wide range of capacities, differing
  801. multicast groups for each media component of a conference allows to
  802. tailor the media distribution to the network bandwidths and end-system
  803. capabilities.  It appears useful, however, to have a means of identifying
  804. groups that logically belong together, for example for purposes of time
  805. synchronization.
  806.  
  807. A conference identifier used in this manner would have to be globally
  808.  
  809. H. Schulzrinne                  Expires 03/01/94                  [Page 15]
  810. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  811.  
  812. unique.  It appears that such logical connections would better be identified
  813. as part of the higher-layer control protocol by identifying all multicast
  814. addresses belonging to the same logical conference, thereby avoiding the
  815. assignment of globally unique identifiers.
  816.  
  817.  
  818. 3.5 Media Encoding Identification
  819.  
  820.  
  821. This field plays a similar role to the protocol field in data link
  822. or network protocols, indicating the next higher layer (here, the media
  823. decoder) that the data is meant for.  For RTP, this field would indicate the
  824. audio or video or other media encoding.  In general, the number of distinct
  825. encodings should be kept as small as possible to increase the chance that
  826. applications can interoperate.   A new encoding should only be recognized
  827. if it significantly enhances the range of media quality or the types of
  828. networks conferences can be conducted over.  The unnecessary proliferation
  829. of encodings can be reduced by making reference implementations of standard
  830. encoders and decoders widely available.
  831.  
  832. It should be noted that encodings may not be enumerable as easily as, say,
  833. transport protocols.  A particular family of related encoding methods may
  834. be described by a set of parameters, as discussed below in the sections on
  835. audio and video encoding.
  836.  
  837. Encodings may change during the duration of a conference.   This may be
  838. due to changed network conditions, changed user preference or because the
  839. conference is joined by a new participant that cannot decode the current
  840. encoding.    If the information necessary for the decoder is conveyed
  841. out-of-band, some means of indicating when the change is effective needs to
  842. be incorporated.  Also, the indication that the encoding is about to change
  843. must reach all receivers reliably before the first packet employing the new
  844. encoding.   Each receiver needs to track pending changes of encodings and
  845. check for every incoming packet whether an encoding change is to take effect
  846. with this packet.
  847.  
  848. Conveying media encodings rapidly is also important to allow scanning of
  849. conferences or broadcast media.  Note that it is not necessary to convey
  850. the whole encoder description, with all parameters; an index into a table of
  851. well-known encodings is probably preferable.  An index would also make it
  852. easier to detect whether the encoding has changed.
  853.  
  854. Alternatively, a directory or announcement service could provide encoding
  855. information for on-going conferences, without carrying the information in
  856. every packet.  This may not be sufficient, however, unless all participants
  857. within a conference use the same encoding.    As soon as the encoding
  858. information is separated from the media data, a synchronization mechanism
  859. has to be devised that ensures that sender and receiver interpret the data
  860. in the same manner after the out-of-band information has been updated.
  861.  
  862. There are at least two approaches to indicating media encoding, either
  863.  
  864. H. Schulzrinne                  Expires 03/01/94                  [Page 16]
  865. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  866.  
  867. in-band or out-of-band:
  868.  
  869.  
  870. conference-specific: Here, the media identifier is an index into a table
  871.     designating the approved or anticipated encodings (together with any
  872.     particular version numbers or other parameters) for a particular
  873.     conference  or  user  community.     The  table  can  be  distributed
  874.     through RTCP, a higher-layer conference control protocol, a conference
  875.     announcement service or some other out-of-band means.  Since the number
  876.     of encodings used during a single conference is likely to be small, the
  877.     field width in the header can likewise be small.  Also, there is no
  878.     need to agree on an Internet-wide list of encodings.   It should be
  879.     noted that conveying the table of encodings through RTCP forces the
  880.     application to maintain a separate mapping table for each sender as
  881.     there can be no guarantee that all senders will use the same table.
  882.     Since the control protocol proposed here is unreliable, changing the
  883.     meaning of encoding indices dynamically is fraught with possibilities
  884.     for misinterpretation and lost data unless this mapping is carried in
  885.     every packet.
  886.  
  887. global: Here,  the media identifier is an index into a global table
  888.     of encodings.    A global list reduces the need for out-of-band
  889.     information.  Transmitting the parameters associated with an encoding
  890.     may be difficult, however, if it has to be done within the header space
  891.     constraints of per-packet signaling.
  892.  
  893.  
  894. To make detecting coder mismatches easier, encodings for all media should
  895. be drawn from the same numbering space.  To facilitate experimentation with
  896. new encodings, a part of any global encoding numbering space should be
  897. set aside for experimental encodings, with numbers agreed upon within the
  898. community experimenting with the encoding, with no Internet-wide guarantee
  899. of uniqueness.
  900.  
  901.  
  902. 3.5.1 Audio Encodings
  903.  
  904.  
  905. Audio data is commonly characterized by three independent descriptors:
  906. encoding (the translation of one or more audio samples into a channel
  907. symbol), the number of channels (mono, stereo, :::) and the sampling rate.
  908.  
  909. Theoretically, sampling rate and encoding are (largely) independent.   We
  910. could, for example, apply mu-law encoding to any sampling rate even though
  911. it is traditionally used with a rate of 8,000 Hz.  In practical terms, it
  912. may be desirable to limit the combinations of encoding and sampling rate to
  913. the values the encoding was designed for.(2)    Channel counts between 1 and
  914. ------------------------------
  915.  2. Given the wide availability of mu-law encoding and its low overhead,
  916. using it with a sampling rate of 16,000 or 32,000 Hz might be quite
  917.  
  918.  
  919. H. Schulzrinne                  Expires 03/01/94                  [Page 17]
  920. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  921.  
  922. 6 should be sufficient even for surround sound.
  923.  
  924. The audio encodings listed in Table 1 appear particularly interesting,
  925. even though the list is by no means exhaustive and does not include some
  926. experimental encodings currently in use, for example a non-standard form of
  927. LPC. The bit rate is shown per channel.   k samples/s, b/sample and kb/s
  928. denote kilosamples per second, bits per sample and kilobits per second,
  929. respectively.  If sampling rates are to be specified separately, the values
  930. of 8, 16, 32, 44.1, and 48 kHz suggest themselves, even though other
  931. values (11.025 and 22.05 kHz) are supported on some workstations (the
  932. Silicon Graphics audio hardware and the Apple Macintosh, for example).
  933. Clearly, little is to be gained by allowing arbitrary sampling rates, as
  934. conversion particularly between rates not related by simple fractions is
  935. quite cumbersome and processing-intensive [10].
  936.  
  937.  
  938. Org.     Name    k samples/s b/sample  kb/s description
  939. CCITT    G.711           8.0        8    64 mu-law PCM
  940. CCITT    G.711           8.0        8    64 A-law PCM
  941. CCITT    G.721           8.0        4    32 ADPCM
  942. Intel    DVI             8.0        4    32 APDCM
  943. CCITT    G.723           8.0        3    24 ADPCM
  944. CCITT    G.726                                 ADPCM
  945. CCITT    G.727                                 ADPCM
  946. NIST/GSA FS 1015         8.0             2.4 LPC-10E
  947. NIST/GSA FS 1016         8.0             4.8 CELP
  948. NADC     IS-54           8.0            7.95 N. American Digital Cellular, VSELP
  949. CCITT    G.728           8.0              16 LD-CELP
  950. GSM                       8.0              13 RPE-LTP
  951. CCITT    G.722           8.0              64 7 kHz, SB-ADPCM
  952. ISO      3-11172                          256 MPEG audio
  953.                           32.0       16   512 DAT
  954.                           44.1       16 705.6 CD, DAT playback
  955.                           48.0       16   786 DAT record
  956.  
  957.  
  958.              Table 1:  Standardized and common audio encodings
  959. ------------------------------
  960. appropriate for high-quality audio conferences, even though there are other
  961. encodings, such as G.722, specifically designed for such applications.  Note
  962. that the signal-to-noise ratio of mu-law encoding is about 38 dB, equivalent
  963. to an AM receiver.  The ``telephone quality'' associated with G.711 is due
  964. primarily to the limitation in frequency response to the 200 to 3500 Hz
  965. range.
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973. H. Schulzrinne                  Expires 03/01/94                  [Page 18]
  974. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  975.  
  976. 3.5.2 Video Encodings
  977.  
  978.  
  979. Common video encodings are listed in Table 2.  Encodings with tunable rate
  980. can be configured for different rates, but produce a fixed-rate stream.
  981. The average bit rate produced by variable-rate codecs depends on the source
  982. material.
  983.  
  984.         Org.       name     rate                remarks
  985.         CCITT      JPEG     tunable
  986.         CCITT      MPEG     variable, tunable
  987.         CCITT      H.261    tunable, px64 kb/s
  988.         Bolter               variable, tunable
  989.         PictureTel           ??
  990.         Cornell U. CU-SeeMe variable
  991.         Xerox Parc nv       variable, tunable
  992.         BBN        DVC      variable, tunable   block differences
  993.  
  994.  
  995.                       Table 2:  Common video encodings
  996.  
  997.  
  998. 3.6 Playout Synchronization
  999.  
  1000.  
  1001. A major purpose of RTP is to provide the support for various forms of
  1002. synchronization, without necessarily performing the synchronization itself.
  1003. We can distinguish three kinds of synchronization:
  1004.  
  1005.  
  1006. playout synchronization: The receiver plays out the medium a fixed time
  1007.     after it was generated at the source (end-to-end delay).    This
  1008.     end-to-end delay may vary from synchronization unit to synchronization
  1009.     unit.  In other words, playout synchronization assures that a constant
  1010.     rate source at the sender again becomes a constant rate source at the
  1011.     receiver, despite delay jitter in the network.
  1012.  
  1013. intra-media synchronization: All receivers play the same segment of a
  1014.     medium at the same time.   Intra-media synchronization may be needed
  1015.     during simulations and wargaming.
  1016.  
  1017. inter-media synchronization: The timing relationship between several media
  1018.     sources is reconstructed at the receiver.   The primary example is
  1019.     the synchronization between audio and video (lip-sync).   Note that
  1020.     different receivers may experience different delays between the media
  1021.     generation time and their playout time.
  1022.  
  1023.  
  1024. Playout synchronization is required for most media, while intra-media and
  1025. inter-media synchronization may or may not be implemented.  In connection
  1026.  
  1027. H. Schulzrinne                  Expires 03/01/94                  [Page 19]
  1028. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  1029.  
  1030. with playout synchronization, we can group packets into playout units, a
  1031. number of which in turn form a synchronization unit.  More specifically, we
  1032. define:
  1033.  
  1034.  
  1035. synchronization unit: A  synchronization  unit  consists  of  one  or  more
  1036.     playout units (see below) that, as a group, share a common fixed delay
  1037.     between generation and playout of each part of the group.  The delay
  1038.     may change at the beginning of such a synchronization unit.  The most
  1039.     common synchronization units are talkspurts for voice and frames for
  1040.     video transmission.
  1041.  
  1042. playout unit: A playout unit is a group of packets sharing a common
  1043.     timestamp.   (Naturally, packets whose timestamps are identical due
  1044.     to timestamp wrap-around are not considered part of the same playout
  1045.     unit.)  For voice, the playout unit would typically be a single voice
  1046.     segment, while for video a video frame could be broken down into
  1047.     subframes, each consisting of packets sharing the same timestamp and
  1048.     ordered by some form of sequence number.
  1049.  
  1050.  
  1051. Two concepts related to synchronization and playout units are absolute and
  1052. relative timing.   Absolute timing maintains a fixed timing relationship
  1053. between sender and receiver, while relative timing ensures that the spacing
  1054. between packets at the sender is the same as that at the receiver, measured
  1055. in terms of the sampling clock.  Playout units within the synchronization
  1056. unit maintain relative timing with respect to each other; absolute timing is
  1057. undesirable if the receiver clock runs at a (slightly) different rate than
  1058. the sender clock.
  1059.  
  1060. Most proposed synchronization methods require a timestamp.  The timestamp
  1061. has to have a sufficient range that wrap-arounds are infrequent.    It
  1062. is desirable that the range exceeds the maximum expected inactive (e.g.,
  1063. silence) period.  Otherwise, if the silence period lasts a full timestamp
  1064. range, the first packet of the next talkspurt would have a timestamp one
  1065. larger than the last packet of the current talkspurt.  In that case, the
  1066. new talkspurt could not be readily discerned if the difference in increment
  1067. between timestamps and sequence numbers is used to detect a new talkspurt.
  1068.  
  1069. The 10-bit timestamp used by NVP is generally agreed to be too small as it
  1070. wraps around after only 20.5 s (for 20 ms audio packets), while a 32-bit
  1071. timestamp should serve all anticipated needs, even if the timestamp is
  1072. expressed in units of samples or other sub-packet entities.
  1073.  
  1074. A timestamp may be useful not only at the transport, but also at the network
  1075. layer, for example, for scheduling packets based on urgency.  The playout
  1076. timestamp would be appropriate for such a scheduling timestamp, as it would
  1077. better reflect urgency than a network-level departure timestamp.  Thus, it
  1078. may make sense to use a network-level timestamp such as the one provided by
  1079. ST-II at the transport layer.
  1080.  
  1081.  
  1082. H. Schulzrinne                  Expires 03/01/94                  [Page 20]
  1083. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  1084.  
  1085. 3.6.1 Synchronization Methods
  1086.  
  1087.  
  1088. The necessary header components are determined to some extent by the method
  1089. of synchronizing sender and receivers.    In this section, we formally
  1090. describe some of the popular approaches, building on the exposition and
  1091. terminology of Montgomery [11].
  1092.  
  1093. We define a number of variables describing the synchronization process.  In
  1094. general, the subscript n represents the nth packet in a synchronization
  1095. unit, n=1;2;:::.  Let a , d , p  and t  be the arrival time, variable
  1096.                           n   n   n      n
  1097. delay, playout time and generation time of the nth packet, respectively.
  1098. Let o denote the fixed delay from sender to receiver.   Finally, d
  1099.                                                                         max
  1100. describes the estimated maximum variable delay within the network.   The
  1101. estimate is typically chosen in such a way that only a very small fraction
  1102. (on the order of 1%) of packets take more than o+d    time units.  For best
  1103.                                                   max
  1104. performance under changing network load conditions, the estimate should be
  1105. refined based on the actual delays experienced.  The variable delay in a
  1106. network consists of queueing and media access delays, while propagation and
  1107. processing delays make up the fixed delay.   Additional end-to-end fixed
  1108. delay is unavoidably introduced by packetization; the non-real-time nature
  1109. of most operating systems adds a variable delay both at the transmitting and
  1110. receiving end.   All variables are expressed in sample unit of time, be
  1111. that seconds or samples, for example.  For simplicity, we ignore that the
  1112. sender and receiver clocks may not run at exactly the same speed.   The
  1113. relationship between the variables is depicted in Fig. 2.  The arrows in the
  1114. figure indicate the transmission of the packet across the network, occurring
  1115. after the packetization delay.  The packet with sequence number 5 misses the
  1116. playout deadline and, depending on the algorithm used by the receiver, is
  1117. either dropped or treated as the beginning of a new talkspurt.
  1118.  
  1119.  
  1120. Figure only available in PostScript version of document.
  1121.                 Figure 2:  Playout Synchronization Variables
  1122.  
  1123. Given the above definitions, the relationship
  1124.  
  1125.                                a =t +d +o                            (1)
  1126.                                 n  n  n
  1127. holds for every packet.  For brevity, we also define l  as the ``laxity''
  1128.                                                         n
  1129. of packet n, i.e., the time p -a  between arrival and playout.  Note that
  1130.                              n  n
  1131. it may be difficult to measure a  with resolution below a packetization
  1132.                                   n
  1133. interval, particularly if the measurement is to be in units related to the
  1134. playback process (e.g., samples).  All synchronization methods differ only
  1135. in how much they delay the first packet of a synchronization unit.   All
  1136. packets within a synchronization unit are played out based on the position
  1137. of the first packet:
  1138.                        p =p   +(t -t   ) for n>1
  1139.                         n          n
  1140.                             n-1       n-1
  1141. Three synchronization methods are of interest.  We describe below how they
  1142. compute the playout time for the first packet in a synchronization unit and
  1143.  
  1144. H. Schulzrinne                  Expires 03/01/94                  [Page 21]
  1145. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  1146.  
  1147. what measurement is used to update the delay estimate d   .
  1148.                                                        max
  1149.  
  1150. blind delay: This method assumes that the first packet in a talkspurt
  1151.     experiences only the fixed delay, so that the full d    has to be
  1152.                                                              max
  1153.     added to allow for other packets within the talkspurt experiencing more
  1154.     delay.
  1155.                                  p =a +d   :                          (2)
  1156.                                           max
  1157.                                   1  1
  1158.     The estimate for the variable delay is derived from measurements
  1159.     of the laxity l ,  so that the new estimate after n packets is
  1160.                       n
  1161.     computed d     =f(l ;:::;l ), where the function f(.) is a suitably
  1162.               max;n             n
  1163.                         1
  1164.     chosen smoothing function.   Note that blind delay does not require
  1165.     timestamps to determine p , only an indication of the beginning of
  1166.                                1
  1167.     a synchronization unit.   Timestamps may be required to compute p ,
  1168.                                                                          n
  1169.     however, unless t -t    is a known constant.
  1170.                      n
  1171.                          n-1
  1172. absolute timing: If the packet carries a timestamp measured in time units
  1173.     known to the receiver, we can improve our determination of the playout
  1174.     point:
  1175.                                 p =t +o+d   :
  1176.                                            max
  1177.                                  1  1
  1178.     This is, clearly, the best that can be accomplished.  Here, instead of
  1179.     estimating d   , we estimate o+d    as some function of p -t .  For
  1180.                 max                  max                       n  n
  1181.     this computation, it does not matter whether p and t are measured with
  1182.     clocks sharing a common starting point.
  1183.  
  1184. added variable delay: Each node adds the variable delay experienced within
  1185.     it to a delay accumulator within the packet, yielding d .
  1186.                                                            n
  1187.                                 p =a -d +d
  1188.                                             max
  1189.                                  1  1  1
  1190.     From Eq. 1, it is readily apparent that absolute delay and added
  1191.     variable delay yield the same playout time.  The estimate for d    is
  1192.                                                                      max
  1193.     based on the measurements for d.   Given a clock with suitably high
  1194.     resolution, these estimates can be better than those based on the
  1195.     difference between a and p; however, it requires that all routers can
  1196.     recognize RTP packets.  Also, determining the residence time within a
  1197.     router may not be feasible.
  1198.  
  1199.  
  1200. In summary, absolute timing is to be preferred due to its lower delays
  1201. compared to blind delay, while synchronization using added variable delays
  1202. is currently not feasible within the Internet (it is, however, used for
  1203. G.764).
  1204.  
  1205.  
  1206. 3.6.2 Detection of Synchronization Units
  1207.  
  1208.  
  1209. The receiver must have a way of readily detecting the beginning of a
  1210. synchronization unit, as the playout scheduling of the first packet in a
  1211. synchronization unit differs from that in the remainder of the unit.  This
  1212.  
  1213. H. Schulzrinne                  Expires 03/01/94                  [Page 22]
  1214. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  1215.  
  1216. detection has to work reliably even with packet reordering; for example,
  1217. reordering at the beginning of a talkspurt is particularly likely since
  1218. common silence detection algorithms send a group of stored packets at the
  1219. beginning of the talkspurt to prevent front clipping.
  1220.  
  1221. Two basic methods have been proposed:
  1222.  
  1223.  
  1224. timestamp and sequence number: The sequence number increases by one with
  1225.     each packet transmitted, while the timestamp reflects the total time
  1226.     covered, measured in some appropriate unit.  A packet is declared to
  1227.     start a new synchronization unit if (a) it has the highest timestamp
  1228.     and sequence number seen so far (within this wraparound cycle) and
  1229.     (b) the difference in timestamp values (converted into a packet count)
  1230.     between this and the previous packet is greater than the difference in
  1231.     sequence number between those two packets.
  1232.  
  1233.     This approach has the disadvantage that it may lead to erroneous packet
  1234.     scheduling with blind delay if packets are reordered.  An example is
  1235.     shown in Table 3.  In the example, the playout delay is set at 50 time
  1236.     units for blind timing and 550 time units for absolute timing.   The
  1237.     packet intergeneration time is 20 time units.
  1238.  
  1239.  
  1240.                                blind timing             absolute timing
  1241.                       no reordering   with reordering
  1242.    seq. timestamp arrival playout arrival playout arrival playout
  1243.     200      1020    1520    1570    1520    1570    1520    1570
  1244.     201      1040    1530    1590    1530    1590    1530    1590
  1245.     202      1220    1720    1770    1725    1750    1725    1770
  1246.     203      1240    1725    1790    1720    1770    1720    1790
  1247.     204      1260    1792    1810    1791    1790    1791    1810
  1248.  
  1249.  
  1250. Table 3:  Example where out-of-order arrival leads to packet loss for blind
  1251. timing
  1252.  
  1253.     More significantly, detecting synchronization units requires that the
  1254.     playout mechanism can translate timestamp differences into packet
  1255.     counts,  so  that  it  can  compare  timestamp  and  sequence  number
  1256.     differences.   If the timespan ``covered'' by a packet changes with
  1257.     the encoding or even varies for each packet, this may be cumbersome.
  1258.     NVP provides the timestamp/sequence number combination for detecting
  1259.     talkspurts.  The following method avoids these drawbacks, at the cost
  1260.     of one additional header bit.
  1261.  
  1262. synchronization bit: The beginning of a synchronization unit is indicated
  1263.     by setting a synchronization bit within the header.   The receiver,
  1264.     however, can only use this information if no later packet has already
  1265.     been processed.    Thus,  packet reordering at the beginning of a
  1266.     talkspurt leads to missing opportunities for delay adjustment.   With
  1267.  
  1268. H. Schulzrinne                  Expires 03/01/94                  [Page 23]
  1269. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  1270.  
  1271.     the synchronization bit, a sequence number is not necessary to detect
  1272.     the beginning of a synchronization unit, but a sequence number remains
  1273.     useful for detecting packet loss and ordering packets bearing the same
  1274.     timestamp.  With just a timestamp, it is impossible for the receiver
  1275.     to get an accurate count of the number of packets that it should have
  1276.     received.  While gaps within a talkspurt give some indication of packet
  1277.     loss, the receiver cannot tell what part of the tail of a talkspurt
  1278.     has been transmitted.   (Example:  consider the talkspurts with time
  1279.     stamps 100, 101, 102, 110, 111.  Packets with timestamp 100 and 110
  1280.     have the synchronization bit set.  The receiver has no way of knowing
  1281.     whether it was supposed to have received two talkspurts with a total of
  1282.     five packets, or two or more talkspurts with up to 12 packets.)  The
  1283.     synchronization bit is used by vat, without a sequence number.  It is
  1284.     also contained in the original version of NVP [12].  A special sequence
  1285.     number, as used by G.764, is equivalent.
  1286.  
  1287.  
  1288. 3.6.3 Interpretation of Synchronization Bit
  1289.  
  1290.  
  1291. Two possibilities for implementing a synchronization bit are discussed here.
  1292.  
  1293.  
  1294. start of synchronization unit: The first packet in a synchronization unit
  1295.     is  marked  with  a  set  synchronization  bit.     With  this  use  of
  1296.     the synchronization bit,  the receiver detects the beginning of a
  1297.     synchronization unit with the following simple algorithm:
  1298.  
  1299.  
  1300.       if synchronization bit = 1
  1301.          and current sequence number > maximum sequence number seen so far
  1302.       then
  1303.         this packet starts a new synchronization unit
  1304.  
  1305.       if current sequence number > maximum sequence number
  1306.       then
  1307.         maximum sequence number := current sequence number
  1308.       endif
  1309.  
  1310.  
  1311.     Comparisons and arithmetic operations are modulo the sequence number
  1312.     range.
  1313.  
  1314. end of synchronization unit: The last packet in a synchronization unit is
  1315.     marked.   As pointed out elsewhere, this information may be useful
  1316.     for initiating appropriate fill-in during silence periods and to start
  1317.     processing a completed video frame.  If a voice silence detector uses
  1318.     no hangover, it may have difficulty deciding which is the last packet
  1319.     in a talkspurt until it judges the first packet to contain no speech.
  1320.     The detection of a new synchronization unit by the receiver is only
  1321.     slightly more complicated than with the previous method:
  1322.  
  1323. H. Schulzrinne                  Expires 03/01/94                  [Page 24]
  1324. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  1325.  
  1326.       if sync_flag then
  1327.         if sequence number >= sync_seq then
  1328.           sync_flag := FALSE
  1329.         endif
  1330.         if sequence number = sync_seq then
  1331.           signal beginning of synchronization unit
  1332.         endif
  1333.       endif
  1334.  
  1335.       if synchronization bit = 1 then
  1336.         sync_seq  := sequence number + 1
  1337.         sync_flag := TRUE
  1338.       endif
  1339.  
  1340.  
  1341.     By changing the equal sign in the second comparison to 'if sequence
  1342.     number > syncseq', a new synchronization unit is detected even if
  1343.     packets at the beginning of the synchronization unit are reordered.  As
  1344.     reordering at the beginning of a synchronization unit is particularly
  1345.     likely,  for  example  when  transmitting  the  packets  preceding  the
  1346.     beginning of a talkspurt, this should significantly reduce the number
  1347.     of missed talkspurt beginnings.
  1348.  
  1349.  
  1350. 3.6.4 Interpretation of Timestamp
  1351.  
  1352.  
  1353. Several proposals as to the interpretation of the timestamp have been
  1354. advanced:
  1355.  
  1356.  
  1357. packet or frame interval: Each packetization or (video/audio) frame inter-
  1358.     val increments the timestamp.  This approach very efficient in terms
  1359.     of processing and bit-use, but cannot be used without out-of-band
  1360.     information if the time interval of media ``covered'' by a packet
  1361.     varies  from  packet  to  packet.     This  occurs  for  example  with
  1362.     variable-rate encoders or if the packetization interval is changed
  1363.     during a conference.  This interpretation of a timestamp is assumed by
  1364.     NVP, which defines a frame as a block of PCM samples or a single LPC
  1365.     frame.  Note that there is no inherent necessity that all participants
  1366.     within a conference use the same packetization interval.    Local
  1367.     implementation considerations such as available clocks may suggest
  1368.     different intervals.   As another example, consider a conference with
  1369.     feedback.   For the lecture audio, a long packetization interval may
  1370.     be desirable to better amortize packet headers.    For side chats,
  1371.     delays are more important, thus suggesting a shorter packetization
  1372.     interval.(3)
  1373. ------------------------------
  1374.  3. Nevot  for example,  allows each participant to have a different
  1375. packetization interval, independent of the packetization interval used by
  1376.  
  1377.  
  1378. H. Schulzrinne                  Expires 03/01/94                  [Page 25]
  1379. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  1380.  
  1381. sample: This method simply counts samples, allowing a direct translation
  1382.     between time stamp and playout buffer insertion point.   It is just
  1383.     as easily computable as the per-packet timestamp.  However, for some
  1384.     media and encodings(4) , it may not be quite clear what a sample is.
  1385.     Also, some care must be taken at the receiver and sender if streams use
  1386.     different sampling rates.  This method is currently used by vat.
  1387.  
  1388. Milliseconds: A timestamp incremented every millisecond would wrap around
  1389.     once  every  49  days.     The  resolution  is  sufficient  for  most
  1390.     applications,  except  that  the  natural  packetization  interval  for
  1391.     LPC-coded speech is 22.5 ms.  Also, with a video frame rate of 30 Hz,
  1392.     an internal timestamp of higher resolution would need to be truncated
  1393.     to millisecond resolution to approximate 33.3 ms intervals.  This time
  1394.     increment has the advantage of being used by some Unix delay functions,
  1395.     which might be useful for playing back video frames with proper timing.
  1396.     It might be useful to take the second value from the current system
  1397.     clock to allow delay estimates for synchronized clocks.
  1398.  
  1399. subset of NTP timestamp: 16 bits encode seconds relative to midnight (0
  1400.     hours), January 1, 1900 (modulo 65536) and 16 bits encode fractions of
  1401.     a second, with a resolution of approximately 15.2 microseconds, which
  1402.     is smaller than any anticipated audio sampling or video frame interval.
  1403.     This timestamp is the same as the middle 32 bits of the 64-bit NTP
  1404.     timestamp [13].  It wraps around every 18.2 hours.  If it should be
  1405.     desirable to reconstruct absolute transmission time at the receiver for
  1406.     logging or recording purposes, it should be easy to determine the most
  1407.     significant 16 bits of the timestamp.  Otherwise, wrap-arounds are not
  1408.     a significant problem as long as they occur 'naturally', i.e., at a 16
  1409.     or 32 bit boundary, so that explicit checking on arithmetic operations
  1410.     is not required.  Also, since the translation mechanism would probably
  1411.     treat the timestamp as a single integer without accounting for its
  1412.     division into whole and fractional part, the exact bit allocation
  1413.     between seconds and fractions thereof is less important.   However,
  1414.     the 16/16 approach simplifies extraction from a full NTP timestamp.
  1415.     Sixteen bits of fractional seconds also allows a timestamp without
  1416.     wrap-around, i.e, with 32 bits of full seconds encoding time since
  1417.     January 1, 1990, to fit into the 52 bits of a IEEE floating point
  1418.     number.
  1419.  
  1420.     The NTP-like timestamp has the disadvantage that its resolution does
  1421.     not map into any of the common sample or packetization intervals.
  1422.     Thus, there is a potential uncertainty of one sample at the receiver
  1423. ------------------------------
  1424. Nevot for its outgoing audio.  Only the packetization interval for outgoing
  1425. audio for all conferences this Nevot participates in must be the same.
  1426.  4. Examples include frame-based encodings such as LPC and CELP. Here, given
  1427. that these encodings are based on 8,000 Hz input samples, the preferred
  1428. interpretation would probably be in terms of audio samples, not frames, as
  1429. samples would be used for reconstruction and mixing.
  1430.  
  1431.  
  1432. H. Schulzrinne                  Expires 03/01/94                  [Page 26]
  1433. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  1434.  
  1435.     as to where to place the beginning of the received packet, resulting
  1436.     in the equivalent of a one-sample slip.   CCITT recommendation G.821
  1437.     postulates a mean slip rate of less than 1 slip in 5 hours, with
  1438.     degraded but acceptable service for less than 1 slip in 2 minutes.
  1439.     Tests with appropriate rounding conducted by the author showed that
  1440.     this uncertainty is not likely to cause problems.   In any event, a
  1441.     double-precision floating point multiplication is needed to translate
  1442.     between this timestamp and the integer sample count available on
  1443.     transmission and required for playout.(5)
  1444.  
  1445. MPEG timestamps: MPEG uses a 33 bit clock with a resolution of 90 kHz [14]
  1446.     as the system clock reference and for presentation time stamps.  The
  1447.     frequency was chosen based on the divisibility by the nominal video
  1448.     picture rates of 24 Hz, 25 Hz, 29.97 Hz and 30 Hz [14, p.42].   The
  1449.     frequency would also fit nicely with the 20 ms audio packetization
  1450.     interval.  The length of 33 bit is clearly inappropriate, however, for
  1451.     software implementations.  32 bit timestamps still cover more than half
  1452.     a day and thus can be readily extended to full unique timestamps or 33
  1453.     bits if needed.
  1454.  
  1455. Microseconds: A 32-bit timestamp incremented every microsecond wraps around
  1456.     once every 71.5 minutes.  The resolution is high enough that round-off
  1457.     errors for video frame intervals and such should be tolerable without
  1458.     maintaining a higher-precision internal counter.   This resolution is
  1459.     also provided, at least nominally, by the Unix gettimeofday() system
  1460.     call.
  1461.  
  1462. QuickTime: The Apple QuickTime file format is a generalization of the
  1463.     previous formats as it combines a 32-bit counter with a 32-bit media
  1464.     time scale expressed in time units per second.   The four previously
  1465.     mentioned timestamps can be represented by time scales of 1000, 65536,
  1466.     90,000 and 1,000,000.  For the sample and packet-based case, the value
  1467.     would depend on the media content, e.g., 8,000 for standard PCM-coded
  1468.     audio.
  1469.  
  1470.  
  1471. Timestamps based on wallclock time rather than samples or frames have the
  1472. advantage that a receiver does not necessarily need to know about the
  1473. meaning of the encoding contained in the packet in order to process the
  1474. timestamp.   For example, a quality-of-service monitor within the network
  1475. could measure delay variance easily, without caring what kind of audio
  1476. information, say, is contained in the packet.   Other tools, such as a
  1477. recording and playback tool, can also be written without concern about the
  1478. mapping between timestamp and wallclock units.
  1479. ------------------------------
  1480.  5. The multiplication with an appropriate factor can be approximated
  1481. to the desired precision by an integer multiplication and division, but
  1482. multiplication by a floating point value is actually much faster on some
  1483. modern processors.
  1484.  
  1485.  
  1486.  
  1487. H. Schulzrinne                  Expires 03/01/94                  [Page 27]
  1488. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  1489.  
  1490. A time stamp could reflect either real time or sample time.  A real time
  1491. timestamp is defined to track wallclock time plus or minus a constant
  1492. offset.   Sample time increases by the nominal sampling interval for each
  1493. sample.  The two clocks in general do not agree since the clock source used
  1494. for sampling will in all likelihood be slightly off the nominal rate.  For
  1495. example, typical crystals without temperature control are only accurate to
  1496.  50 -- 100 ppm (parts per million), yielding a potential drift of 0.36
  1497. seconds per hour between the sampling clock and wallclock time.
  1498.  
  1499. It has been suggested to use timestamps relative to the beginning of
  1500. first transmission from a source.   This makes correlation between media
  1501. from different participants difficult and seems to have no technical or
  1502. implementation advantages,  except for avoiding wrap-around during most
  1503. conferences.   As pointed out above, that seems to be of little benefit.
  1504. Clearly, the reliability of a wallclock-synchronized timestamps depends on
  1505. how closely the system clocks are synchronized, but that does not argue for
  1506. giving up potential real-time synchronization in all cases.
  1507.  
  1508. Using real time rather than sample time allows for easier synchronization
  1509. between different media and users (e.g., during playback of a recorded
  1510. conference) and to compensate for slow or fast sample clocks.  Note that it
  1511. is neither desirable nor necessary to obtain the wall clock time when each
  1512. packet was sampled.  Rather, the sender determines the wallclock time at the
  1513. beginning of each synchronization unit (e.g., a talkspurt for voice and a
  1514. frame for video) and adds the nominal sample clock duration for all packets
  1515. within the talkspurt to arrive at the timestamp value carried in packets.
  1516. The real time at the beginning of a talkspurt is determined by estimating
  1517. the true sample rate for the duration of the conference.
  1518.  
  1519. The sample rate estimate has to be accurate enough to allow placing the
  1520. beginning of a talkspurt, say, to within at most 50 to 100 ms, otherwise the
  1521. lack of synchronization may be noticeable, delay computations are confused
  1522. and successive talkspurts may be concatenated.
  1523.  
  1524. Estimating the true sampling instant to within a few milliseconds is
  1525. surprisingly difficult for current operating systems.  The sample rate r can
  1526. to be estimated as
  1527.                                      s+q
  1528.                                  r=     :
  1529.                                     t-t
  1530.                                         0
  1531. Here, t is the current time, t  the time elapsed since the first sample
  1532.                                 0
  1533. was acquired, s is the number of samples read, q is the number of samples
  1534. ready to be read (queued) at time t.  Let p denote the number of samples
  1535. in a packet.   The timestamp in the synchronization packet reflects the
  1536. sampling instant of the first sample of that packet and is computed as
  1537. t-(p+q)=r.  Unfortunately, only s and p are known precisely.  The accuracy
  1538. of the estimate for t  and t depend on how accurately the beginning of
  1539.                       0
  1540. sampling and the last reading from the audio device can be measured.  There
  1541. is a non-zero probability that the process will get preempted between the
  1542. time the audio data is read and the instant the system clock is sampled.
  1543. It remains unclear whether indications of current buffer occupancy, if
  1544. available, can be trusted.  Even with increasing sample count, the absolute
  1545.  
  1546.  
  1547. H. Schulzrinne                  Expires 03/01/94                  [Page 28]
  1548. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  1549.  
  1550. accuracy of the timestamp is roughly the same as the measurement accuracy of
  1551. t, as differentiating with respect to t shows.  Experiments with the SunOS
  1552. audio driver showed significant variations of the estimated sample rate,
  1553. with discontinuities of the computed timestamps of up to 25 ms.   Kernel
  1554. support is probably required for meaningful real time measurements.
  1555.  
  1556. Sample time increments with the sampling interval for every sample or
  1557. (sub)frame received from the audio or video hardware.   It is easy to
  1558. determine, as long as care is taken to avoid cumulative round-off errors
  1559. incurred by simply repeatedly adding the approximate packetization interval.
  1560. However, synchronization between media and end-to-end delay measurements are
  1561. then no longer feasible.  (Example:  Consider an audio and a video stream.
  1562. If the audio sample clock is slightly faster than the real clock and the
  1563. video sampling clock, a video and audio frame belonging together would be
  1564. marked by different timestamps, thus played out at different instants.)
  1565.  
  1566. If we choose to use sample time, the advantage of using an NTP-format
  1567. timestamp  disappears,  as  the  receiver  can  easily  reconstruct  a  NTP
  1568. sample-based timestamp from the sample count if needed, but would not have
  1569. to if no cross-media synchronization is required.   RTCP could relate the
  1570. time increment per sample in full precision.  The definition of a ``sample''
  1571. will depend on the particular medium, and could be a audio sample, a video
  1572. or a voice frame (as produced by a non-waveform coder).  The mapping fails
  1573. if there is no time-invariant mapping between sample units and time.
  1574.  
  1575. It should be noted that it may not be possible to associate an meaningful
  1576. notion of time with every packet.   For example, if a video frame is
  1577. broken into several fragments, there is no natural timestamp associated
  1578. with anything but the first fragment, particularly if there is not even
  1579. a sequential mapping from screen scan location into packets.   Thus, any
  1580. timestamp used would be purely artificial.  A synchronization bit could be
  1581. used in this particular case to mark beginning of synchronization units.
  1582. For packets within synchronization units, there are two possible approaches:
  1583. first, we can introduce an auxiliary sequence number that is only used to
  1584. order packets within a frame.  Secondly, we could abuse the timestamp field
  1585. by incrementing it by a single unit for each packet within the frame, thus
  1586. allowing a variable number of frames per packet.  The latter approach is
  1587. barely workable and rather kludgy.
  1588.  
  1589.  
  1590. 3.6.5 End-of-talkspurt indication
  1591.  
  1592.  
  1593. An end-of-talkspurt indication is useful to distinguish silence from lost
  1594. packets.   The receiver would want to replace silence by an appropriate
  1595. background noise level to avoid the ``noise-pumping'' associated with
  1596. silence  detection.     On  the  other  hand,  missing  packets  should  be
  1597. reconstructed from previous packets.   If the silence detector makes use
  1598. of hangover, the transmitter can easily set the end-of-talkspurt indicator
  1599. on the last bit of the last hangover packet.   If the talkspurts follow
  1600. end-to-end, the end-of-talkspurt indicator has no effect except in the
  1601.  
  1602. H. Schulzrinne                  Expires 03/01/94                  [Page 29]
  1603. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  1604.  
  1605. case where the first packet of a talkspurt is lost.   In that case, the
  1606. indicator would erroneously trigger noise fill instead of loss recovery.
  1607. The end-of-talkspurt indicator is implemented in G.764 as a ``more'' bit
  1608. which is set to one for all but the last packet within a talkspurt.
  1609.  
  1610.  
  1611. 3.6.6 Recommendation
  1612.  
  1613.  
  1614. Given the ease of cross-media synchronization and the media independence,
  1615. the use of 32-bit 16/16 timestamps representing the middle part of the NTP
  1616. timestamp is suggested.   Generally, a wallclock-based timestamp appears
  1617. to be preferable to a sample-based one, but it may only be approximately
  1618. realizable for some current operating systems.  Inter-media synchronization
  1619. to below 10 to 20 ms has to await mechanisms that can accurately determine
  1620. when a particular sample was actually received by the A/D converter.
  1621. Particularly with sample- or wallclock-based timestamp, a synchronization
  1622. bit simplifies the detection of the beginning of a synchronization unit.
  1623. Indicating either the end or beginning of a synchronization unit is roughly
  1624. equivalent, with tradeoffs between the two.
  1625.  
  1626.  
  1627. 3.7 Segmentation and Reassembly
  1628.  
  1629.  
  1630. For high-bandwidth video, a single frame may not fit into the maximum
  1631. transport unit (MTU). Thus, some form of frame sequence number is needed.
  1632. If possible, the same sequence number should be used for synchronization and
  1633. fragmentation.  Six possibilities suggest themselves:
  1634.  
  1635.  
  1636. overload the timestamp: No sequence number is used.   Within a frame, the
  1637.     timestamp has no meaning.  Since it is used for synchronization only
  1638.     when the synchronization bit is set, the other timestamps can just
  1639.     increase by one for each packet.   However, as soon as the first
  1640.     frame gets lost or reordered, determining positions and timing becomes
  1641.     difficult or impossible.
  1642.  
  1643. packet count: The sequence number is incremented for every packet, without
  1644.     regard to frame boundaries.  If a frame consists of a variable number
  1645.     of packets, it may not be clear what position the packet occupies
  1646.     within the frame if packets are lost or reordered.  Continuous sequence
  1647.     numbers make it possible to determine if all packets for a particular
  1648.     frame have arrived, but only after the first packet of the next frame,
  1649.     distinguished by a new timestamp, has arrived.
  1650.  
  1651. packet count within a frame: The sequence number is reset to zero at the
  1652.     beginning of each frame.  This approach has properties complementary to
  1653.     continuous sequence numbers.
  1654.  
  1655.  
  1656.  
  1657. H. Schulzrinne                  Expires 03/01/94                  [Page 30]
  1658. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  1659.  
  1660. packet count and first-packet sequence number: Packets use a continuously
  1661.     incrementing sequence number plus an option field in every packet
  1662.     indicating the initial sequence number within the playout unit(6) .
  1663.     Carrying both a continuous and packet-within-frame count achieves the
  1664.     same effect.
  1665.  
  1666. packet count with last-packet sequence number: Packets carry a continuous
  1667.     sequence number plus an option in every packet indicating the last
  1668.     sequence number within the playout unit.  This has the advantage that
  1669.     the receiver can readily detect when the last packet for a playout unit
  1670.     has been received.   The transmitter may not know, however, at the
  1671.     beginning of a playout unit how many packets it will comprise.  Also,
  1672.     the position within the playout unit is more difficult to determine if
  1673.     the initial packet and the previous frame is lost.
  1674.  
  1675. packet count and frame count: The sequence number counts packets, without
  1676.     regard to frame boundaries.  A separate counter increments with each
  1677.     frame.  Detecting the end of a frame is delayed until the first packet
  1678.     belonging to the next frame.   Also, the frame count cannot help to
  1679.     determe the position of the packet within a frame.
  1680.  
  1681.  
  1682. It could be argued that encoding-specific location information should be
  1683. contained within the media part, as it will likely vary in format and use
  1684. from one media to the next.  Thus, frame count, the sequence number of the
  1685. last or first packet in a frame etc.  belong into the media-specific header.
  1686.  
  1687. The size of the sequence number field should be large enough to allow
  1688. unambiguous counting of expected vs.  received packets.  A 16-bit sequence
  1689. number would wrap around every 20 minutes for a 20 ms packetization
  1690. interval.  Using 16 bits may also simplify modulo arithmetic.
  1691.  
  1692.  
  1693. 3.8 Source Identification
  1694.  
  1695.  
  1696. 3.8.1 Bridges, Translators and End Systems
  1697.  
  1698.  
  1699. It is necessary to be able to identify the origin of the real-time data in
  1700. terms meaningful to the application.  First, this is required to demultiplex
  1701. sites (or sources) within the same conference.   Secondly, it allows an
  1702. indication of the currently active source.
  1703.  
  1704. Currently, NVP makes no explicit provisions for this, assuming that the
  1705. network source address can be used.  This may fail if intermediate agents
  1706. intervene between the content source and final destination.  Consider the
  1707. example in Fig. 3.   An RTP-level bridge is defined as an entity that
  1708. ------------------------------
  1709.  6. suggested by Steve Casner
  1710.  
  1711. H. Schulzrinne                  Expires 03/01/94                  [Page 31]
  1712. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  1713.  
  1714. transforms either the RTP header or the RTP media data or both.   Such
  1715. a bridge could for example merge two successive packets for increased
  1716. transport efficiency or, probably the most common case, translate media
  1717. encodings for each stream, say from PCM to LPC (called transcoding).
  1718. A synchronizing bridge is defined here as a bridge that recreates a
  1719. synchronous media stream, possibly after mixing several sources.    An
  1720. application that mixes all incoming streams for a particular conference,
  1721. recreates a synchronous audio stream and then forwards it to a set of
  1722. receivers is an example of a synchronizing bridge.  A synchronizing bridge
  1723. could be built from two end system applications, with the first application
  1724. feeding the media output to the media input of the second application and
  1725. vice versa.
  1726.  
  1727. In figure 3, the bridges are used to translate audio encodings, from PCM
  1728. and ADPCM to LPC. The bridge could be either synchronizing or not.  Note
  1729. that a resynchronizing bridge is only necessary if audio packets depend on
  1730. their predecessors and thus cannot be transcoded independently.  It may be
  1731. advantageous if the packetization interval can be increased.  Also, for low
  1732. speed links that are barely able to handle one active source at a time,
  1733. mixing at the bridge avoids excessive queueing delays when several sources
  1734. are active at the same time.  A synchronizing bridge has the disadvantage
  1735. that it always increases the end-to-end delay.
  1736.  
  1737. We define translators as transport-level entities that translate between
  1738. transport protocols, but leave the RTP protocol unit untouched.   In the
  1739. figure, the translator connects a multicast group to a group of hosts that
  1740. are not multicast capable by performing transport-level replication.
  1741.  
  1742. We define an end system as an entity that receives and generates media
  1743. content, but does not forward it.
  1744.  
  1745. We define three types of sources:  the content source is the actual origins
  1746. of the media, e.g., the talker in an audiocast; a synchronization source
  1747. is the combination of several content sources with its own timing; network
  1748. source is the network-level origin as seen by the end system receiving the
  1749. media.
  1750.  
  1751. The end system has to synchronize its playout with the synchronization
  1752. source, indicate the active party according to the content source and return
  1753. media to the network source.   If an end system receives media through a
  1754. resynchronizing bridge, the end system will see the bridge as the network
  1755. and synchronization source, but the content sources should not be affected.
  1756. The translator does not affect the media or synchronization sources, but the
  1757. translator becomes the network source.   (Note that having the translator
  1758. change the IP source address is not possible since the end systems need
  1759. to be able to return their media to the translator.)   In the (common)
  1760. case where no bridge or translator intercepts packets between sender and
  1761. receiver, content, synchronization and network source are identical.   If
  1762. there are several bridges or translators between sender and receiver, only
  1763. the last one is visible to the receiver.
  1764.  
  1765.  
  1766. H. Schulzrinne                  Expires 03/01/94                  [Page 32]
  1767. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  1768.  
  1769.  
  1770.  
  1771. /-------"        +------+
  1772. |       |  ADPCM |      |
  1773. | group |<------>|  GW  |--" LPC
  1774. |       |        |      |   "    /------ end system
  1775. "-------/        +------+    "|"/
  1776.                     reflector | >------- end system
  1777. /-------"        +------+    /|/"
  1778. |       |  PCM   |      |   /    "------ end system
  1779. | group |<------>|  GW  |--/ LPC
  1780. |       |        |      |
  1781. "-------/        +------+
  1782.  
  1783. <---> multicast
  1784.                          Figure 3:  Bridge topology
  1785.  
  1786. vat audio packets include a variable-length list of at most 64 4-byte
  1787. identifiers containing all content sources of the packet.  However, there is
  1788. no convenient way to distinguish the synchronization source from the network
  1789. source.   The end system needs to be able to distinguish synchronization
  1790. sources because jitter computation and playout delay differ for each
  1791. synchronization source.
  1792.  
  1793.  
  1794. 3.8.2 Address Format Issues
  1795.  
  1796.  
  1797. The limitation to four bytes of addressing information may not be desirable
  1798. for a number of reasons.  Currently, it is used to hold an IP address.  This
  1799. works as long as four bytes are sufficient to hold an identifier that is
  1800. unique throughout the conference and as long as there is only one media
  1801. source per IP address.   The latter assumption tends to be true for many
  1802. current workstations, but it is easy to imagine scenarios where it might not
  1803. be, e.g., a system could hold a number of audio cards, could have several
  1804. audio channels (Silicon Graphics systems, for example) or could serve as a
  1805. multi-line telephone interface.(7)
  1806.  
  1807. The combination of IP address and source port can identify multiple sources
  1808. per site if each content source uses a different source port.  For a small
  1809. number of sources, it appears feasible, if inelegant, to allocate ports just
  1810. to distinguish sources.   In the PBX example a single output port would
  1811. appear to be the appropriate method for sending all incoming calls across
  1812. the network.  The mechanisms for allocating unique file names could also be
  1813. used.  The difficult part will be to convince all applications to draw from
  1814. ------------------------------
  1815.  7. If we are willing to forego the identification with a site, we could
  1816. have a multiple-audio channel site pick unused IP addresses from the local
  1817. network and associate it with the second and following audio ports.
  1818.  
  1819.  
  1820. H. Schulzrinne                  Expires 03/01/94                  [Page 33]
  1821. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  1822.  
  1823. the same numbering space.
  1824.  
  1825. For efficiency in the common case of one source per workstation, the
  1826. convention (used in vat) of using the network source address, possibly
  1827. combined with the user id or source port, as media and synchronization
  1828. source should be maintained.
  1829.  
  1830. There are several possible approaches to naming sources.  We compare here
  1831. two examples representing naming through globally unique network addresses
  1832. and through a concatenation of locally unique identifiers.
  1833.  
  1834. The receiver needs to be able to uniquely identify the content source so
  1835. that speaker indication and labeling work.  For playout synchronization, the
  1836. synchronization source needs to be determined.  The identification mechanism
  1837. has to continue to work even if the path between sender and receiver
  1838. contains multiple bridges and translators.
  1839.  
  1840. Also, in the common case of no bridges or translators, the only information
  1841. available at the receiver is the network address and source port.   This
  1842. can cause difficulties if there is more than one participant per host in a
  1843. certain conference.  If this can occur, it is necessary that the application
  1844. opens two sockets, one for listening bound to the conference port number and
  1845. one for sending, bound to some locally unique port.  That randomly chosen
  1846. port should also be used for reverse application data, i.e., requests from
  1847. the receiver back to the content source.  Only the listening socket needs
  1848. to be a member of the IP multicast group.  If an application multiplexes
  1849. several locally generated sources, e.g., an interface to an audio bridge,
  1850. it should follow the rules for bridges, that is, insert content source
  1851. information.
  1852.  
  1853.  
  1854. 3.8.3 Globally unique identifiers
  1855.  
  1856.  
  1857. Sources are identified by their network address and the source port number.
  1858. The source port number rather than some other integer has to be chosen for
  1859. the common case that RTP packets contain no SSRC or CSRC options.  Since
  1860. the SDES option contains an address, it has to be the network address
  1861. plus source port, no other information being available to the receiver
  1862. for matching.   (The SDES address is not strictly needed unless a bridge
  1863. with mixing is involved, but carrying it keeps the receiver from having
  1864. to distinguish those cases.)   Since tying a protocol too closely to one
  1865. particular network protocol is considered a bad idea (witness the difficulty
  1866. of adopting parts of FTP for non-IP protocols), the address should probably
  1867. have the form of a type-lenght-value field.  To avoid having to manage yet
  1868. another name space, it appears possible to re-use the Ethertype values, as
  1869. all commonly used protocols with their own address space appear to have been
  1870. assigned such a value.   Other alternatives, such as using the BSD Unix
  1871. AF constants suffer from the drawback that there does not appear to be a
  1872. universally agreed-upon numbering.  NSAPs can contain other addresses, but
  1873. not every address format (such as IP) has an NSAP representation.   The
  1874.  
  1875. H. Schulzrinne                  Expires 03/01/94                  [Page 34]
  1876. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  1877.  
  1878. receiver application does not need to interpret the addresses themselves; it
  1879. treats address format identifier (e.g., the Ethertype field) and address as
  1880. a globally unique byte string.  We have to assure a single host does not use
  1881. two network addresses, one for transmission and a different one in the SDES
  1882. option.
  1883.  
  1884. The rules for adding CSRC and SSRC options are simple:
  1885.  
  1886.  
  1887. end system: End systems do not insert CSRC or SSRC options.  The receiver
  1888.     remembers the CSRC address for each site;  if none is explicitly
  1889.     specified, the SSRC address is used.   If that is also missing, the
  1890.     network address is used.   SDES options are matched to this content
  1891.     source address.
  1892.  
  1893. bridge: A  bridge  adds  the  network  source  address  of  all  sources
  1894.     contributing to a particular outgoing packet as CSRC options.  A bridge
  1895.     that receives a packet containing CSRC options may decide to copy those
  1896.     CSRC options into an outgoing packet that contains data from that
  1897.     bridge.
  1898.  
  1899. translator: The translator checks whether the packet already contains a
  1900.     SSRC (inserted by an earlier translator).    If so, no action is
  1901.     required.   Otherwise, the translator inserts an SSRC containing the
  1902.     network address of the host from which the packet was received.
  1903.  
  1904.  
  1905. The SSRC option is set only by the translator, unless the packet already
  1906. bears such an option.
  1907.  
  1908. Globally unique identifiers based on network addresses have the advantage
  1909. that they simplify debugging, for example, allowing to determine which
  1910. bridge processed a message, even after the packet has passed through a
  1911. translator.
  1912.  
  1913.  
  1914. 3.8.4 Locally unique addresses
  1915.  
  1916.  
  1917. In this scheme, the SSRC, CSRC and SDES options contain locally unique
  1918. identifiers of some length.    For lengths of at least four bytes, it
  1919. is sufficient to have the application pick one at random, without local
  1920. coordination, with sufficiently low probability of collision within a single
  1921. host.  The receiver creates a globally unique identifier by concatenating
  1922. the network address and one or more random identifiers.  The synchronization
  1923. source is identified by the concatenation of the SSRC identifier and the
  1924. network address.  Only translators are allowed to set the SSRC option.  If a
  1925. translator receives an RTP packet which already contains an SSRC option, as
  1926. can occur if a packet traverses several translators, the translator has to
  1927. choose a new set of values, mapping packets with the same network source,
  1928. but different incoming SSRC value into different outgoing SSRC values.  Note
  1929.  
  1930. H. Schulzrinne                  Expires 03/01/94                  [Page 35]
  1931. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  1932.  
  1933. that the SSRC constitute a label-swapping scheme similar to that used for
  1934. ATM networks, except that the assocation setup is implicit.  If a translator
  1935. loses state (say, after rebooting), the mapping is simply reestablished as
  1936. packets arrive from end systems or other translators.  Until the receivers
  1937. timeout, a single source may appear twice and there may be a temporary
  1938. confusion of sources and their descriptors.
  1939.  
  1940. The rules are:
  1941.  
  1942.  
  1943. end system: An end system never inserts CSRC options and typically does not
  1944.     insert an SSRC option.  An end system application may insert an SSRC
  1945.     option if it originates more than one stream for a single conference
  1946.     through a single network and transport address, e.g., a single UDP
  1947.     port.  The SDES option contains a zero for the identifier, indicating
  1948.     that the receiver is to much on network address only.   The receiver
  1949.     determines the synchronization source as the concatenation of network
  1950.     source and synchronization source.
  1951.  
  1952. bridge: A bridge assigns each source its own CSRC identifier (non-zero),
  1953.     which is then used also in the SDES option.
  1954.  
  1955. translator: The translator maintains a list of all incoming sources, with
  1956.     their network and SSRC, if present.  Sources without SSRC are assigned
  1957.     an SSRC equal to zero.  Each of these sources is assigned a new local
  1958.     identifier, which is then inserted into the SSRC option.
  1959.  
  1960.  
  1961. Local identifiers have advantages:  the length of the identifiers within
  1962. the packet are significantly shorter (four to six vs.    at least ten
  1963. bytes with padding);  comparison of content and synchronization source
  1964. are quicker (integer comparison vs.   variable-length string comparison).
  1965. The identifiers are meaningless for debugging.    In particular, it is
  1966. not easy for the receiver sitting behind a translator and a bridge to
  1967. determine where a bridge is located, unless the bridge identifies itself
  1968. periodically, possibly with another SDES-like option containing the actual
  1969. network address.
  1970.  
  1971. The major drawbacks appear to be the additional translator complexity:
  1972. translators needs to maintain a mapping from incoming network/SSRC to
  1973. outgoing SSRC.
  1974.  
  1975. Note that using IP addresses as ``random'' local identifiers is not workable
  1976. if there is any possibility that two sources participating in the same
  1977. conference can coexist on the same host.
  1978.  
  1979. A somewhat contrived scenaria is shown in Fig. 4.
  1980.  
  1981.  
  1982.  
  1983.  
  1984.  
  1985. H. Schulzrinne                  Expires 03/01/94                  [Page 36]
  1986. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  1987.  
  1988.  
  1989. Figure only available in PostScript version.
  1990.     Figure 4:  Complicated topology with translators (R) and bridges (G)
  1991.  
  1992. 3.9 Energy Indication
  1993.  
  1994.  
  1995. G.764 contains a 4-bit noise energy field, which encodes the white noise
  1996. energy to be played by the receiver in the silences between talkspurts.
  1997. Playing silence periods as white noise reduces the noise-pumping where the
  1998. background noise audible during the talkspurt is audibly absent at the
  1999. receiver during silence periods.   Substituting white noise for silence
  2000. periods at the receiver is not recommended for multi-party conferences, as
  2001. the summed background noise from all silent parties would be distractive.
  2002. Determining the proper noise level appears to be difficult.  It is suggested
  2003. that the receiver simply takes the energy of the last packet received before
  2004. the beginning of a silence period as an indication of the background noise.
  2005. With this mechanism, an explicit indication in the packet header is not
  2006. required.
  2007.  
  2008.  
  2009. 3.10 Error Control
  2010.  
  2011.  
  2012. In principle, the receiver has four choices in handling packets with bit
  2013. errors [15]:
  2014.  
  2015.  
  2016. no checking: the receiver provides no indication whether a data packet
  2017.     contains bit errors, either because a checksum is not present or is not
  2018.     checked.
  2019.  
  2020. discard: the receiver discards errored packets, with no indication to the
  2021.     application.
  2022.  
  2023. receive: the  receiver  delivers  and  flags  errored  packets  to  the
  2024.     application.
  2025.  
  2026. correct: the receiver drops errored packets and requests retransmission.
  2027.  
  2028.  
  2029. It remains to be decided whether the header, the whole packet or neither
  2030. should be protected by checksums.  NVP protects its header only, while G.764
  2031. has a single 16-bit check sequence covering both datalink and packet voice
  2032. header.  However, if UDP is used as the transport protocol, a checksum over
  2033. the whole packet is already computed by the receiver.  (Checksumming for UDP
  2034. can typically be disabled by the sending or receiving host, but usually not
  2035. on a per-port basis.)  ST-II does not compute checksums for its payload.
  2036. Many data link protocols already discard packets with bit errors, so that
  2037.  
  2038.  
  2039. H. Schulzrinne                  Expires 03/01/94                  [Page 37]
  2040. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  2041.  
  2042. packets are rarely rejected due to higher-layer checksums.
  2043.  
  2044. Bit errors within the data part may be easier to tolerate than a lost
  2045. packet, particularly since some media encoding formats may provide built-in
  2046. error correction.  The impact of bit errors within the header can vary; for
  2047. example, errors within the timestamp may cause the audio packet to be played
  2048. out at the wrong time, probably much more noticeable than discarding the
  2049. packet.  Other noticeable effects are caused by a wrong flow or encoding
  2050. identifier.   If a separate checksum is desired for the cases where the
  2051. underlying protocols do not already provide one, it should be optional.
  2052. Once optional, it would be easy to define several checksum options, covering
  2053. just the header, the header plus a certain part of the body or the whole
  2054. packet.
  2055.  
  2056. A checksum can also be used to detect whether the receiver has the correct
  2057. decryption key, avoiding noise or (worse) denial-of-service attacks.  For
  2058. that application, the checksum should be computed across the whole packet,
  2059. before encrypting the content.  Alternatively, a well-known signature could
  2060. be added to the packet and included in the encryption, as long as known
  2061. plaintext does not weaken the encryption security.
  2062.  
  2063. Embedding a checksum as an option may lead to undiscovered errors if
  2064. the the presence of the checksum is masked by errors.   This can occur
  2065. in a number of ways, for example by an altered option type field, a
  2066. final-option bit erroneously set in options prior to the checksum option or
  2067. an erroneous field length field.   Thus, it may be preferable to prefix
  2068. the RTP packet with a checksum as part of the specification of running
  2069. RTP over some network or transport protocol.   To avoid the overhead of
  2070. including a checksum even in the common case where it is not needed, it
  2071. might be appropriate to distinguish two RTP protocol variations through the
  2072. next-protocol value in the lower-layer protocol header; the first would
  2073. include a checksum, the second would not.   The checksum itself offers a
  2074. number of encoding possibilities(8) :
  2075.  
  2076.  
  2077.   o have two 16-bit checksums, one covering the header, the other the data
  2078.     part
  2079.  
  2080.   o combine a 16-bit checksum with a byte count indicating its coverage,
  2081.     thus allowing either a header-only or a header-plus-data checksum
  2082.  
  2083.  
  2084. The latter has the advantage that the checksum can be computed without
  2085. determining the header length.
  2086.  
  2087. The error detection performance and computational cost of some common 16-bit
  2088. checksumming algorithms are summarized in Table 4.  The implementations were
  2089. drawn from [16] and compiled on a SPARC IPX using the Sun ANSI C compiler
  2090. ------------------------------
  2091.  8. suggested by S. Casner
  2092.  
  2093.  
  2094. H. Schulzrinne                  Expires 03/01/94                  [Page 38]
  2095. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  2096.  
  2097. with optimization.    The checksum computation was repeated 100 times;
  2098. thus, due to data cache effects, the execution times shown are probably
  2099. better than would be measured in an actual application.   The relative
  2100. performance, however, should be similar.  Among the algorithms, the CRC has
  2101. the strongest error detection properties, particularly for burst errors,
  2102. while the remaining algorithms are roughly equivalent [16].  The Fletcher
  2103. algorithm with modulo 255 (shown here) has the peculiar property that a
  2104. transformation of a byte from 0 to 255 remains undetected.   CRC, the IP
  2105. checksum and Fletcher's algorithm cannot detect spurious zeroes at the end
  2106. of a variable-length message [17].  The non-CRC checksums have the advantage
  2107. that they can be updated incrementally if only a few bytes have changed.
  2108. The latter property is important for translators that insert synchronization
  2109. source indicators.
  2110.  
  2111.               algorithm                                   ms
  2112.               IP checksum                              0.093
  2113.               Fletcher's algorthm, optimized [17]      0.192
  2114.               CRC CCITT                                0.310
  2115.               Fletcher's algorithm, non-optimized [18] 2.044
  2116.  
  2117.  
  2118. Table 4:  Execution time of common 16-bit checksumming algorithms, for a
  2119. 1024-byte packet, in milliseconds
  2120.  
  2121.  
  2122. 3.11 Security and Privacy
  2123.  
  2124.  
  2125. 3.11.1 Introduction
  2126.  
  2127.  
  2128. The discussions in this sections are based on the work of the privacy
  2129. enhanced mail (PEM) working group within the Internet Engineering Task
  2130. Force, as documented in [19,20] and related documents.   The reader is
  2131. referred to RFC 1113 [19] or its successors for terminology.  Also relevant
  2132. is the work on security for SNMP Version 2.   We discuss here how the
  2133. following security-related services may be implemented for packet voice and
  2134. video:
  2135.  
  2136.  
  2137. Confidentiality: Measures that ensure that only the intended receiver(s)
  2138.     can decode the received audio/video data; for others, the data contains
  2139.     no useful information.
  2140.  
  2141. Authentication: Measures  that  allow  the  receiver(s)  to  ascertain  the
  2142.     identity of the sender of data or to verify that the claimed originator
  2143.     is indeed the originator of the data.
  2144.  
  2145. Message integrity: Measures that allow the receiver(s) to detect whether
  2146.     the received data has been altered.
  2147.  
  2148. H. Schulzrinne                  Expires 03/01/94                  [Page 39]
  2149. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  2150.  
  2151. As for PEM [19], the following privacy-related concerns are not addressed at
  2152. this time:
  2153.  
  2154.  
  2155.   o access control
  2156.  
  2157.   o traffic flow confidentiality
  2158.  
  2159.   o routing control
  2160.  
  2161.   o assurance of data receipt and non-deniability of receipt
  2162.  
  2163.   o duplicate  detection,  replay  prevention,  or  other  stream-oriented
  2164.     services
  2165.  
  2166.  
  2167. These services either require connection-oriented services or support from
  2168. the lower layers that is currently unavailable.  A reasonable goal is to
  2169. provide privacy at least equivalent to that provided by the public telephone
  2170. system (except for traffic flow confidentiality).
  2171.  
  2172. As  for  privacy-enhanced  mail,  the  sender  determines  which  privacy
  2173. enhancements  are  to  be  performed  for  a  particular  part  of  a  data
  2174. transmission.   Therefore, mechanisms should be provided that allow the
  2175. sender to determine whether the desired recipients are equipped to process
  2176. any privacy-enhancements.  This is functionally similar to the negotiation
  2177. of,  say,  media encodings and should probably be handled by similar
  2178. mechanisms.   It is anticipated that privacy-enhanced mail will be used
  2179. in the absence of or in addition to session establishment protocols and
  2180. agents to distributed keys or negotiate the enhancements to be used during a
  2181. conference.
  2182.  
  2183.  
  2184. 3.11.2 Confidentiality
  2185.  
  2186.  
  2187. Only data encryption can provide confidentiality as long as intruders can
  2188. monitor the channel.  It is desirable to specify an encryption algorithm and
  2189. provide implementations without export restrictions.  Although DES is widely
  2190. available outside the United States, its use within software in both source
  2191. and binary form remains difficult.
  2192.  
  2193. We have the choice of either encrypting and/or authenticating the whole
  2194. packet or only the options and payload.  Encrypting the fixed header denies
  2195. the intruder knowledge about some conference details (such as timing and
  2196. format) and protects against replay attacks.  Encrypting the fixed header
  2197. also allows some heuristic detection of key mismatches, as the version
  2198. identifier, timestamp and other header information are somewhat predictable.
  2199. However, header encryption makes packet traces and debugging by external
  2200. programs difficult.  Also, since translators may need to inspect and modify
  2201. the header, but do not have access to the sender's key, at least part of
  2202.  
  2203. H. Schulzrinne                  Expires 03/01/94                  [Page 40]
  2204. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  2205.  
  2206. the header needs to remain unencrypted, with the ability for the receiver
  2207. to discern which part has been encrypted.   Given these complications and
  2208. the uncertain benefits of header encryption, it appears appropriate to limit
  2209. encryption to the options and payload part only.
  2210.  
  2211. In public key cryptography, the sender uses the receiver's public key for
  2212. encryption.   Public key cryptography does not work for true multicast
  2213. systems since the public encoding key for every recipient differs, but it
  2214. may be appropriate when used in two-party conversations or application-level
  2215. multicast.  In that case, mechanisms similar to privacy enhanced mail will
  2216. probably be appropriate.  Key distribution for symmetric-key encryption such
  2217. as DES is beyond the scope of this recommendation, but the services of
  2218. privacy enhanced mail [19,21] may be appropriate.
  2219.  
  2220. For one-way applications, it may desirable to prohibit listeners from
  2221. interrupting the broadcast.   (After all, since live lectures on campus
  2222. get disrupted fairly often, there is reason to fear that a sufficiently
  2223. controversial lecture carried on the Internet could suffer a similar fate.)
  2224. Again, asymmetric encryption can be used.   Here, the decryption key is
  2225. made available to all receivers, while the encryption key is known only
  2226. to the legitimate sender.  Current public-key algorithms are probably too
  2227. computationally intensive for all but low-bit-rate voice.  In most cases,
  2228. filtering based on sources will be sufficient.
  2229.  
  2230.  
  2231. 3.11.3 Message Integrity and Authentication
  2232.  
  2233.  
  2234. The usual message digest methods are applicable if only the integrity of the
  2235. message is to be protected against tampering.  Again, services similar to
  2236. that of privacy-enhanced mail [22] may be appropriate.   The MD5 message
  2237. digest [23] appears suitable.  It translates any size message into a 128-bit
  2238. (16-byte) signature.   On a SPARCstation IPX (Sun 4/50), the computation
  2239. of a signature for a 180-byte audio packet takes approximately 0.378 ms(9)
  2240. Defining the signature to apply to all data beginning at the signature
  2241. option allows operation when translators change headers.  The receiver has
  2242. to be able to locate the public key of the claimed sender.  This poses two
  2243. problems:  first, a way of identifying the sender unambiguously needs to be
  2244. found.  The current methods of identification, such as the SMTP (e-mail)
  2245. address, are not unambiguous.  Use of a distinguished name as described in
  2246. RFC 1255 [24] is suggested.
  2247.  
  2248. The authentication process is described in RFC 1422 [21]:
  2249. ------------------------------
  2250.  9. The processing rates for Sun 4/50 (40 MHz clock) and SPARCstation 10's
  2251. (36 MHz clock) are 0.95 and 2.2 MB/s, respectively, measured for a single
  2252. 1000-byte block.  Note that timing the repeated application of the algorithm
  2253. for the same block of data gives optimistic results since the data then
  2254. resides in the cache.
  2255.  
  2256.  
  2257.  
  2258. H. Schulzrinne                  Expires 03/01/94                  [Page 41]
  2259. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  2260.  
  2261.      In  order  to  provide  message  integrity  and  data  origin
  2262.     authentication, the originator generates a message integrity code
  2263.     (MIC), signs (encrypts) the MIC using the private component of his
  2264.     public-key pair, and includes the resulting value in the message
  2265.     header in the MIC-Info field.  The certificate of the originator
  2266.     is (optionally) included in the header in the Certificate field
  2267.     as described in RFC 1421.   This is done in order to facilitate
  2268.     validation in the absence of ubiquitous directory services.  Upon
  2269.     receipt of a privacy enhanced message, a recipient validates the
  2270.     originator's certificate (using the IPRA public component as the
  2271.     root of a certification path), checks to ensure that it has not
  2272.     been revoked, extracts the public component from the certificate,
  2273.     and uses that value to recover (decrypt) the MIC. The recovered
  2274.     MIC is compared against the locally calculated MIC to verify the
  2275.     integrity and data origin authenticity of the message.
  2276.  
  2277.  
  2278. For audio/video applications with loose control, the certificate could be
  2279. carried periodically to allow new listeners to obtain it and to achieve a
  2280. measure of reliability.
  2281.  
  2282. Symmetric key methods such as DES can also be used.   Here, the key is
  2283. simply prefixed to the message when computing the message digest (MIC), but
  2284. not transmitted.   The receiver has to obtain the sender's key through a
  2285. secure channel, e.g., a PEM message.  The method has the advantage that no
  2286. cryptography is involved, thus alleviating export-control concerns.  It is
  2287. used for SNMP Version 2 authentication.
  2288.  
  2289.  
  2290. 3.12 Security for RTP vs.  PEM
  2291.  
  2292.  
  2293. It is the author's opinion that RTP should aim to reuse as much of the
  2294. PEM technology and syntax as possible, unless there are strong reasons in
  2295. the nature of real-time traffic to deviate.  This has the advantage that
  2296. terminology, implementation experience, certificate mechanisms and possibly
  2297. code can be reused.  Also, since it is hoped that RTP finds use in a range
  2298. of applications, a broad spectrum of security mechanisms should be provided,
  2299. not necessarily limited by what is appropriate for large-distribution audio
  2300. and video conferences.
  2301.  
  2302. It should be noted that connection-oriented security architectures are
  2303. probably unsuitable for RTP applications as they rely on reliable stream
  2304. transmission and an explicit setup phase with typically only a single sender
  2305. and receiver.
  2306.  
  2307. There are a number of differences between the security requirements of PEM
  2308. and RTP that should be kept in mind:
  2309.  
  2310.  
  2311. Transparency: Unlike electronic mail, it is safe to assume that the channel
  2312.  
  2313. H. Schulzrinne                  Expires 03/01/94                  [Page 42]
  2314. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  2315.  
  2316.     will carry 8 bit data unaltered.   Thus, a conversion to a canonical
  2317.     form or encoding binary data into a 64-element subset as done for PEM
  2318.     is not required.
  2319.  
  2320. Time: As outlined at the beginning of this document, processing speed and
  2321.     packet overhead have to be major considerations, much more so than with
  2322.     store-and-forward electronic mail.  Message digest algorithms and DES
  2323.     can be implemented sufficiently fast even in software to be used for
  2324.     voice and possibly for low-bit rate video.  Even for short signatures,
  2325.     RSA encryption is fairly slow.
  2326.  
  2327.     Note that the ASN.1/BER encoding of asymmetrically-encrypted MICs and
  2328.     certificates adds no significant processing load.  For the MICs, the
  2329.     ASN.1 algorithm yields only additional constant bytes which a paranoid
  2330.     program can check, but does not need to decode.   Certificates are
  2331.     carried much more infrequently and are relatively simple structures.
  2332.     It would seem unnecessary to supply a complete ASN.1/BER parser for any
  2333.     of the datastructures.
  2334.  
  2335. Space: Encryption algorithm require a minimum data input equal to their
  2336.     keylength.   Thus, for the suggested key length for RSA encryption
  2337.     of 508 to 1024 bits, the 16-byte message digest expands to a 53
  2338.     to 128 byte MIC. This is clearly rather burdensome for short audio
  2339.     packets.   Applying a single message digest to several packets seems
  2340.     possible if the packet loss rates are sufficiently low, even though it
  2341.     does introduce minor security risks in the case where the receiver is
  2342.     forced to decide between accepting as authentic an incomplete sequence
  2343.     of packets or rejecting the whole sequence.    Note that it would
  2344.     not be necessary to wait with playback until a complete authenticated
  2345.     block has been received; in general, a warning that authentication has
  2346.     failed would be sufficient for human users.   The application should
  2347.     also issue a warning if no complete block could be authenticated for
  2348.     several blocks, as that might indicate that an impostor was feigning
  2349.     the presence of MIC-protected data by strategically dropping packets.
  2350.  
  2351.     The initialization vector for DES in cipher block mode adds another
  2352.     eight bytes.
  2353.  
  2354. Scale: The symmetric key authentication algorithm used by PEM does not
  2355.     scale well for a large number of receivers as the message has to
  2356.     contain a separate MIC for each receiver, encrypted with the key for
  2357.     that particular sender-receiver pair.   If we forgo the ability to
  2358.     authenticate an individual user, a single session key shared by all
  2359.     participants can thwart impostors from outside the group holding the
  2360.     shared secret.
  2361.  
  2362.  
  2363.  
  2364.  
  2365.  
  2366.  
  2367.  
  2368. H. Schulzrinne                  Expires 03/01/94                  [Page 43]
  2369. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  2370.  
  2371. 3.13 Quality of Service Control
  2372.  
  2373.  
  2374. Because real-time services cannot afford retransmissions, they are directly
  2375. affected by packet loss and delays.   Delay jitter and packet loss, for
  2376. example, provide a good indication of network congestion and may suggest
  2377. switching to a lower-bandwidth coding.   To aid in fault isolation and
  2378. performance monitoring,  quality-of-service (QOS) measurement support is
  2379. useful.  QOS of service monitoring is useful for the receiver of real-time
  2380. data, the sender of that data and possibly a third-party monitor, e.g.,
  2381. the network provider,  that is itself not part of the real-time data
  2382. distribution.
  2383.  
  2384.  
  2385. 3.13.1 QOS Measures
  2386.  
  2387.  
  2388. For real-time services, a number of QOS measures are of interest, roughly in
  2389. order of importance:
  2390.  
  2391.  
  2392.   o packet loss
  2393.  
  2394.   o packet delay variation (variance, minimum/maximum)
  2395.  
  2396.   o relative clock drift (delay between sender and receiver timestamp)
  2397.  
  2398.  
  2399. In the following, the terms receiver and sender pertain to the real-time
  2400. data, not any returned QOS data.  If the receiver is to measure packet loss,
  2401. an indication of the number of packets actually transmitted is required.
  2402. If the receiver itself does not need to compute packet loss percentages,
  2403. it is sufficient for the receiver to indicate to the sender the number of
  2404. packets received and the range timestamps covered, thus avoiding the need
  2405. for sequence numbers.   Translation into loss at the sender is somewhat
  2406. complicated, however, unless restrictions on permissible timestamps (e.g.,
  2407. those starting a synchronization unit) are enforced.  If sequence numbers
  2408. are available, the receiver has to track the number of times that the
  2409. sequence number has wrapped around, even in the face of packet reordering.
  2410. If c denotes the cycle count, M the sequence number modulus and s  the
  2411.                                                                       n
  2412. sequence number of the n received packet, where s  is not necessarily
  2413.                                                       n
  2414. larger than s   , we can write:
  2415.              n-1
  2416.  
  2417.                    c =c   +1 for -M<s -s   <-M=2
  2418.                     n                    n
  2419.                         n-1                  n-1
  2420.                    c =c   -1 for M=2<s -s   <M
  2421.                     n                    n
  2422.                         n-1                  n-1
  2423.                    c =c       otherwise
  2424.                     n
  2425.                         n-1
  2426.  
  2427.  
  2428.  
  2429.  
  2430.  
  2431. H. Schulzrinne                  Expires 03/01/94                  [Page 44]
  2432. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  2433.  
  2434. For example, the sequence number sequence 65534;2;65535;1;3;5;4 would
  2435. yield the cycle number sequence 0;1;0;1;1;1;1 for M=65536, i.e., 16-bit
  2436. sequence numbers.   The total number of expected packets is then computed
  2437. simply as s +M*c -s +1, where the first received packet has index 0.
  2438.            n     n
  2439.                      0
  2440. The user of the measurements should also have some indication as to the time
  2441. period they cover so that the degree of confidence in these statistical
  2442. meassurements can be established.
  2443.  
  2444.  
  2445. 3.13.2 Remote measurements
  2446.  
  2447.  
  2448. It may be desirable for the sender, interested multicast group members
  2449. or  a  non-group  member  (third  party)  to  have  automatic  access  to
  2450. quality-of-service measurements.   In particular, it is necessary for the
  2451. sender to gather a number of reception reports from different parts of the
  2452. Internet to ``triangulate'' where packets get lost or delayed.
  2453.  
  2454. Two  modes  of  operation  can  be  distinguished:    monitor-driven  or
  2455. receiver-driven.  In the monitor-driven case, a site interested in QOS data
  2456. for a particular sender contacts the receiver through a back channel and
  2457. requests a reception report.  Alternatively, each site can send reception
  2458. reports to a monitoring multicast group or as session data, along with
  2459. the ``regular station identification'' to the same multicast group used
  2460. for data.   The first approach requires the most implementation effort,
  2461. but produces the least amount of data.   The other two approaches have
  2462. complementary properties.
  2463.  
  2464. In most cases, sender-specific quality of service information is more useful
  2465. for tracking network problems than aggregrate data for all senders.  Since
  2466. a site cannot transmit reception reports for all senders it has ever heard
  2467. from, some selection mechanism is needed, such as most-recently-heard or
  2468. cycling through sites.
  2469.  
  2470. Source identification poses some difficulties since the network address seen
  2471. by the receiver may not be meaningful to other members of the multicast
  2472. group, e.g., after IP-SIP address translation.  On the other hand, network
  2473. addresses are easier to correlate with other network-level tools such as
  2474. those used for Mbone mapping.
  2475.  
  2476. minimum and maximum difference between departure and arrival timestamp.
  2477. This has the advantage that the fixed delay can also be estimated if
  2478. sender and receiver clocks are known to be synchronized.   Unfortunately,
  2479. delay extrema are noisy measurement that give only limited indication of
  2480. the delay variability.   The receiver could also return the playout delay
  2481. value it uses, although for absolute timing, that again depends on the
  2482. clock differential, as well as on the particular delay estimation algorithm
  2483. employed by the receiver.  In summary, a minimal set of useful measurements
  2484. appears to be the expected and received packet count, combined with the
  2485. minimum and maximum timestamp difference.
  2486.  
  2487. H. Schulzrinne                  Expires 03/01/94                  [Page 45]
  2488. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  2489.  
  2490. 3.13.3 Monitoring by Third Party
  2491.  
  2492.  
  2493. Except for delay estimates based on sequence number ranges, the above
  2494. section applies for this case as well.
  2495.  
  2496.  
  2497. 4 Conference Control Protocol
  2498.  
  2499.  
  2500. Currently, only conference control functions used for loosely controlled
  2501. conferences (open admission,  no explicit conference set-up) have been
  2502. considered in depth.  Support for the following functionality needs to be
  2503. specified:
  2504.  
  2505.  
  2506.   o authentication
  2507.  
  2508.   o floor control, token passing
  2509.  
  2510.   o invitations, calls
  2511.  
  2512.   o call forwarding, call transfer
  2513.  
  2514.   o discovery of conferences and resources (directory service)
  2515.  
  2516.   o media, encoding and quality-of-service negotiation
  2517.  
  2518.   o voting
  2519.  
  2520.   o conference scheduling
  2521.  
  2522.   o user locator
  2523.  
  2524.  
  2525. The functional specification of a conference control protocol is beyond the
  2526. scope of this memorandum.
  2527.  
  2528.  
  2529. 5 The Use of Profiles
  2530.  
  2531.  
  2532. RTP is intended to be a rather 'thin' protocol, partially because it aims
  2533. to serve a wide variety of real-time services.   The RTP specification
  2534. intentionally leaves a number of issues open for other documents (profiles),
  2535. which in turn have the goal of making it easy to build interoperable
  2536. applications for a particular application domain, for example, audio and
  2537. video conferences.
  2538.  
  2539. Some of the issues that a profile should address include:
  2540.  
  2541. H. Schulzrinne                  Expires 03/01/94                  [Page 46]
  2542. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  2543.  
  2544.   o the interpretation of the 'content' field with the CDESC option
  2545.  
  2546.   o the structure of the content-specific part at the end of the CDESC
  2547.     option
  2548.  
  2549.   o the mechanism by which applications learn about and define the mapping
  2550.     between the 'content' field in the RTP fixed header and its meaning
  2551.  
  2552.   o the use of the optional framing field prefixed to RTP packets (not
  2553.     used, used only if underlying transport protocol does not provide
  2554.     framing, used by some negotiation mechanism, always used)
  2555.  
  2556.   o any RTP-over-x issues, that is, definitions needed to allow RTP to use
  2557.     a particular underlying protocol
  2558.  
  2559.   o content-specific RTP, RTCP or reverse control options
  2560.  
  2561.   o port assignments for data and reverse control
  2562.  
  2563.  
  2564. 6 Port Assignment
  2565.  
  2566.  
  2567. Since it is anticipated that UDP and similar port-oriented protocols will
  2568. play a major role in carrying RTP traffic, the issue of port assignment
  2569. needs to be addressed.   The way ports are assigned mainly affects how
  2570. applications can extract the packets destined for them.  For each medium,
  2571. there also needs to be a mechanism for distinguishing data from control
  2572. packets.
  2573.  
  2574. For unicast UDP, only the port number is available for demultiplexing.
  2575. Thus, each media will need a separate port number pair unless a separate
  2576. demultiplexing agent is used.    However,  for one-to-one connections,
  2577. dynamically negotiating a port number is easy.  If several UDP streams are
  2578. used to provide multicast by transport-level replication, the port number
  2579. issue becomes somewhat more difficult.  For ST-II, a common port number has
  2580. to be agreed upon by all participants, which may be difficult particularly
  2581. if a new site wants to join an on-going connection, but is already using the
  2582. port number in a different connection.
  2583.  
  2584. For UDP multicast, an application can select to receive only packets with a
  2585. particular port number and multicast address by binding to the appropriate
  2586. multicast address(10) .   Thus, for UDP multicast, there is no need to
  2587. distinguish media by port numbers, as each medium could have its designated
  2588. and unique multicast group.   Any dynamic port allocation mechanism would
  2589. fail for large, dynamic multicast groups, but might be appropriate for small
  2590. ------------------------------
  2591. 10. This extension to the original multicast socket semantics is currently
  2592. in the process of being deployed.
  2593.  
  2594.  
  2595. H. Schulzrinne                  Expires 03/01/94                  [Page 47]
  2596. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  2597.  
  2598. conferences and two-party conversations.
  2599.  
  2600. Data and control packets for a single medium can either share a single
  2601. port or use two different port numbers.   (Currently, two adjacent port
  2602. numbers, 3456 and 3457, are used.)   A single port for data and control
  2603. simplifies the receiver code and translators and, less important, conserves
  2604. port numbers.  With the proliferation of firewalls, limiting the number of
  2605. ports has assumed additional importance.   Sharing a single port requires
  2606. some other means of identifying control packets, for example as a special
  2607. encoding code.  Alternatively, all control data could be carried as options
  2608. within data packets, akin to the NVP protocol options.   Since control
  2609. messages are also transmitted if no actual medium data is available, header
  2610. content of packets without media data needs to be determined.  With the use
  2611. of a synchronization bit, the issue of how sequence numbers and timestamps
  2612. are to be treated for these packets is less critical.  It is suggested to
  2613. use a zero timestamp and to increment the sequence number normally.  Due to
  2614. the low bandwidth requirements of typical control information, the issue of
  2615. accomodating control information in any bandwidth reservation scheme should
  2616. be manageable.   The penalty paid is the eight-byte overhead of the RTP
  2617. header for control packets that do not require time stamps, encoding and
  2618. sequence number information.
  2619.  
  2620. Using a single RTCP stream for several media may be advantageous to
  2621. avoid duplicating, for example, the same identification information for
  2622. voice, video and whiteboard streams.   This works only if there is one
  2623. multicast group that all members of a conference subscribe to.   Given
  2624. the relatively low frequency of control messages, the coordination effort
  2625. between applications and the necessity to designate control messages for a
  2626. particular medium are probably reasons enough to have each application send
  2627. control messages to the same multicast group as the data.
  2628.  
  2629. In conclusion, for multicast UDP, one assigned port number, for both data
  2630. and control, seems to offer the most advantages, although the data/control
  2631. split may offer some bandwidth savings.
  2632.  
  2633.  
  2634. 7 Multicast Address Allocation
  2635.  
  2636.  
  2637. A fixed, permanent allocation of network multicast addresses to invidual
  2638. conferences by some naming authority such as the Internet Assigned Numbers
  2639. Authority is clearly not feasible, since the lifetime of conferences is
  2640. unknown, the potential number of conferences is rather large and the
  2641.                                            28             16
  2642. available number space limited to about 2  , of which 2   have been set
  2643. aside for dynamic allocation by conferences.
  2644.  
  2645. The alternative to permanent allocation is a dynamic allocation, where an
  2646. initiator of a multicast application obtains an unused multicast address in
  2647. some manner (discussed below).  The address is then made available again,
  2648. either implicitly or explicitly, as the application terminates.
  2649.  
  2650.  
  2651. H. Schulzrinne                  Expires 03/01/94                  [Page 48]
  2652. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  2653.  
  2654. The address allocation may or may not be handled by the same mechanism that
  2655. provides conference naming and discovery services.  Separating the two has
  2656. the advantage that dynamic (multicast) address allocation may be useful
  2657. to applications other than conferencing.  Also, different mechanisms (for
  2658. example, periodic announcements vs.  servers) may be appropriate for each.
  2659.  
  2660. We can distinguish two methods of multicast address assignment:
  2661.  
  2662.  
  2663. function-based: all applications of a certain type share a common, global
  2664.     address space.  Currently, a reservation of a 16-bit address space for
  2665.     conferences is one example.   The advantage of this scheme is that
  2666.     directory functions and allocation can be readily combined, as is done
  2667.     in the sd tool by Van Jacobson.   A single namespace spanning the
  2668.     globe makes it necessary to restrict the scope of addresses so that
  2669.     allocation does not require knowing about and distributing information
  2670.     about the existence of all global conferences.
  2671.  
  2672. hierarchical: Based on the location of the initiator, only a subset of
  2673.     addresses are available.    This limits the number of hosts that
  2674.     could be involved in resolving collisions, but, like most hierarchical
  2675.     assignment, leads to sparse allocation.  Allocation is independent of
  2676.     the function the address is used for.
  2677.  
  2678.  
  2679. Clearly, combinations are possible, for example, each local namespace could
  2680. be functionally divided if sufficiently large.  With the current allocation
  2681.     16
  2682. of 2   addresses to conferences, hierarchical division except on a very
  2683. coarse scale is not feasible.
  2684.  
  2685. To a limited extent, multicast address allocation can be compared to the
  2686. well-known channel multiple access problem.   The multicast address space
  2687. plays the role of the common channel, with each address representing a time
  2688. slot.
  2689.  
  2690. All the following schemes require cooperation from all potential users of
  2691. the address space.  There is no protection against an ignorant or malicious
  2692. user joining a multicast group.
  2693.  
  2694.  
  2695. 7.1 Channel Sensing
  2696.  
  2697.  
  2698. In this approach, the initiator randomly selects a multicast address from a
  2699. given range, joins the multicast group with that address and listens whether
  2700. some other host is already transmitting on that address.  This approach does
  2701. not require a separate address allocation protocol or an address server,
  2702. but it is probably infeasible for a number of reasons.   First, a user
  2703. process can only bind to a single port at one time, making 'channel sensing'
  2704. difficult.  Secondly, unlike listening to a typical broadcast channel, the
  2705.  
  2706.  
  2707. H. Schulzrinne                  Expires 03/01/94                  [Page 49]
  2708. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  2709.  
  2710. act of joining the multicast group can be quite expensive both for the
  2711. listening host and the network.   Consider what would happen if a host
  2712. attached through a low-bandwidth connection joins a multicast group carrying
  2713. video traffic, say.
  2714.  
  2715. Channel sensing may also fail if two sections of the network that were
  2716. separated at the time of address allocation rejoin later.   Changes in
  2717. time-to-live values can make multicast groups 'visible' to hosts that
  2718. previously were outside their scope.
  2719.  
  2720.  
  2721. 7.2 Global Reservation Channel with Scoping
  2722.  
  2723.  
  2724. Each range of multicast addresses has an associated well-known multicast
  2725. address and port where all initiators (and possibly users) advertise the use
  2726. of multicast addresses.   An initiator first picks a multicast address at
  2727. random, avoiding those already known to be in use.   Some mechanism for
  2728. collision resolution has to be provided in the unlikely event that two
  2729. initiators simultaneously choose the same address.   Also, since address
  2730. advertisement will have to be sent at fairly long intervals to keep traffic
  2731. down, an application wanting to start a conference, for example, has to
  2732. wait for an extended period of time unless it continuously monitors the
  2733. allocation multicast group.
  2734.  
  2735. To limit traffic, it may seem advisable to only have the initiator multicast
  2736. the address usage advertisement.  This, however, means that there needs to
  2737. be a mechanism for another site to take over advertising the group if the
  2738. initiator leaves, but the multicast group continues to exist.  Time-to-live
  2739. restrictions pose another problem.  If only a single source advertises the
  2740. group, the advertisement may not reach all those sites that could be reached
  2741. by the multicast transmissions themselves.
  2742.  
  2743. The possibility of collisions can be reduced by address reuse with scoping,
  2744. discussed further below, and by adding port numbers and other identifiers
  2745. as further discriminators.   The latter approach appears to defeat the
  2746. purpose of using multicast to avoid transmitting information to hosts that
  2747. have no interest in receiving it.  Routers can only filter based on group
  2748. membership, not ports or other higher-layer demultiplexing identifiers.
  2749. Thus, even though two conferences with the same multicast address and
  2750. different ports, say, could coexist at the application layer, this would
  2751. force hosts and networks that are interested in only one of the conferences
  2752. to deal with the combined traffic of the two conferences.
  2753.  
  2754.  
  2755. 7.3 Local Reservation Channel
  2756.  
  2757.  
  2758. Instead of sharing a global namespace for each application, this scheme
  2759. divides the multicast address space hierarchically, allowing an initiator
  2760. within a given network to choose from a smaller set of multicast addresses,
  2761.  
  2762. H. Schulzrinne                  Expires 03/01/94                  [Page 50]
  2763. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  2764.  
  2765. but independent of the application.  As with many allocation problems, we
  2766. can devise both server-based and fully distributed versions.
  2767.  
  2768.  
  2769. 7.3.1 Hierarchical Allocation with Servers
  2770.  
  2771.  
  2772. By some external means, address servers, distributed throughout the network,
  2773. are provided with non-overlapping regions of the multicast address space.
  2774. An initiator asks its favorite address server for an address when needed.
  2775. When it no longer needs the address, it returns it to the server.   To
  2776. prevent addresses from disappearing when the requestor crashes and looses
  2777. its memory about allocated addresses, requests should have an associated
  2778. time-out period.  This would also (to some extent) cover the case that the
  2779. initiator leaves the conference, without the conference itself disbanding.
  2780. To decrease the chances that an initiator cannot be provided with an
  2781. address, either the local server could 'borrow' an address from another
  2782. server or could point the initiator to another server, somewhat akin to the
  2783. methods used by the Domain Name Service (DNS). Provisions have to be made
  2784. for servers that crash and may loose knowledge about the status of its block
  2785. of addresses, in particular their expiration times.   The impact of such
  2786. failures could be mitigated by limiting the maximum expiration time to a few
  2787. hours.  Also, the server could try to request status by multicast from its
  2788. clients.
  2789.  
  2790.  
  2791. 7.3.2 Distributed Hierarchical Allocation
  2792.  
  2793.  
  2794. Instead of a server,  each network is allocated a set of multicast
  2795. addresses.   Within the current IP address space, both class A, B and C
  2796. networks would get roughly 120 addresses, taking into account those that
  2797. have been permanently assigned.   Contention for addresses works like the
  2798. global reservation channel discussed earlier, but the reservation group is
  2799. strictly limited to the local network.   (Since the address ranges are
  2800. disjoint, address information that inadvertently leaks outside the network,
  2801. is harmless.)
  2802.  
  2803. This method avoids the use of servers and the attendant failure modes, but
  2804. introduces other problems.  The division of the address space leads to a
  2805. barely adequate supply of addresses (although larger address formats will
  2806. probably make that less of an issue in the future).  As for any distributed
  2807. algorithm, splitting of networks into temporarily unconnected parts can
  2808. easily destroy the uniqueness of addresses.  Handling initiators that leave
  2809. on-going conferences is probably the most difficult issue.
  2810.  
  2811.  
  2812.  
  2813.  
  2814.  
  2815.  
  2816.  
  2817. H. Schulzrinne                  Expires 03/01/94                  [Page 51]
  2818. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  2819.  
  2820. 7.4 Restricting Scope by Limiting Time-to-Live
  2821.  
  2822.  
  2823. Regardless of the address allocation method,  it may be desirable to
  2824. distinguish multicast addresses with different reach.  A local address would
  2825. be given out with the restriction of a maximum time-to-live value and could
  2826. thus be reused at a network sufficiently removed, akin to the combination
  2827. of cell reuse and power limitation in cellular telephony.  Given that many
  2828. conferences will be local or regional (e.g., broadcasting classes to nearby
  2829. campuses of the same university or a regional group of universities, or an
  2830. electronic town meeting), this should allow significant reuse of addresses.
  2831. Reuse of addresses requires careful engineering of thresholds and would
  2832. probably only be useful for very small time-to-live values that restrict
  2833. reach to a single local area network.  Using time-to-live fields to restrict
  2834. scope rather than just prevent looping introduces difficult-to-diagnose
  2835. failure modes into multicast sessions.  In particular, reachability is no
  2836. longer transitive, as B may have A and C in its scope, but A and B may be
  2837. outside each other's scope (or A may be in the scope of B, but not vice
  2838. versa, due to asymmetric routes, etc.).  This problem is aggravated by the
  2839. fact that routers (for obvious reasons) are not supposed to return ICMP time
  2840. exceeded messages, so that the sender can only guess why multicast packets
  2841. do not reach certain receivers.
  2842.  
  2843.  
  2844. 8 Security Considerations
  2845.  
  2846.  
  2847. Security issues are discussed in Section 3.11.
  2848.  
  2849.  
  2850. Acknowledgments
  2851.  
  2852.  
  2853. This draft is based on discussion within the AVT working group chaired by
  2854. Stephen Casner.  Eve Schooler and Stephen Casner provided valuable comments.
  2855.  
  2856. This work was supported in part by the Office of Naval Research under
  2857. contract N00014-90-J-1293, the Defense Advanced Research Projects Agency
  2858. under contract NAG2-578 and a National Science Foundation equipment grant,
  2859. CERDCR 8500332.
  2860.  
  2861.  
  2862. A Glossary
  2863.  
  2864.  
  2865. The glossary below briefly defines the acronyms used within the text.
  2866. Further definitions can be found in RFC 1392, ``Internet User's Glossary''.
  2867. Some of the general Internet definitions below are copied from that
  2868. glossary.    The quoted passages followed by a reference of the form
  2869.  
  2870.  
  2871. H. Schulzrinne                  Expires 03/01/94                  [Page 52]
  2872. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  2873.  
  2874. ``(G.701)'' are drawn from the CCITT Blue Book, Fascicle I.3, Definitions.
  2875. The glossary of the document ``Recommended Practices for Enhancing Digital
  2876. Audio Compatibility in Multimedia Systems'', published by the Interactive
  2877. Multimedia Association was used for some terms marked with [IMA]. The
  2878. section on MPEG is based on text written by Mark Adler (Caltech).
  2879.  
  2880.  
  2881. 4:1:1 Refers to degree of subsampling of the two chrominance signals with
  2882.     respect to the luminance signal.  Here, each color difference component
  2883.     has one quarter the resolution of the luminance component.
  2884.  
  2885. 4:2:2 Refers to degree of subsampling of the two chrominance signals with
  2886.     respect to the luminance signal.  Here, each color difference component
  2887.     has half the resolution of the luminance component.
  2888.  
  2889. 16/16 timestamp: a 32-bit integer timestamp consisting of a 16-bit field
  2890.     containing the number of seconds followed by a 16-bit field containing
  2891.     the binary fraction of a second.  This timestamp can measure about 18.2
  2892.     hours with a resolution of approximately 15 microseconds.
  2893.  
  2894. n=m timestamp: a n+m bit timestamp consisting of an n-bit second count and
  2895.     an m-bit fraction.
  2896.  
  2897. ADPCM: Adaptive  differential  pulse  code  modulation.      Rather  than
  2898.     transmitting ! PCM samples directly,  the difference between the
  2899.     estimate of the next sample and the actual sample is transmitted.  This
  2900.     difference is usually small and can thus be encoded in fewer bits than
  2901.     the sample itself.   The ! CCITT recommendations G.721, G.723, G.726
  2902.     and G.727 describe ADPCM encodings.   ``A form of differential pulse
  2903.     code modulation that uses adaptive quantizing.  The predictor may be
  2904.     either fixed (time invariant) or variable.   When the predictor is
  2905.     adaptive, the adaptation of its coefficients is made from the quantized
  2906.     difference signal.''  (G.701)
  2907.  
  2908. adaptive quantizing: ``Quantizing  in  which  some  parameters  are  made
  2909.     variable according to the short term statistical characteristics of the
  2910.     quantized signal.''  (G.701)
  2911.  
  2912. A-law: a type of audio !companding popular in Europe.
  2913.  
  2914. CCIR: Comite Consultativ International de Radio.   This organization is
  2915.     part of the United Nations International Telecommunications Union (ITU)
  2916.     and is responsible for making technical recommendations about radio,
  2917.     television and frequency assignments.   The CCIR has recently changed
  2918.     its name to ITU-TR; we maintain the more familiar name.  !CCITT
  2919.  
  2920. CCIR-601: The CCIR-601 digital television standard is the base for all the
  2921.     subsampled interchange formats such as SIF, CIF, QCIF, etc.  For NTSC
  2922.     (PAL/SECAM), it is 720 (720) pixels by 243 (288) lines by 60 (50)
  2923.     fields per second, where the fields are interlaced when displayed.
  2924.     The chrominance channels horizontally subsampled by a factor of two,
  2925.  
  2926. H. Schulzrinne                  Expires 03/01/94                  [Page 53]
  2927. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  2928.  
  2929.     yielding 360 (360) pixels by 243 (288) lines by 60 (50) fields a
  2930.     second.
  2931.  
  2932. CCITT: Comite Consultatif International de Telegraphique et Telephonique
  2933.     (CCITT). This organization is part of the United Nations International
  2934.     Telecommunications Union (ITU) and is responsible for making technical
  2935.     recommendations about telephone and data communications systems.  X.25
  2936.     is an example of a CCITT recommendation.  Every four years CCITT holds
  2937.     plenary sessions where they adopt new recommendations.  Recommendations
  2938.     are known by the color of the cover of the book they are contained in.
  2939.     (The 1988 edition is known as the Blue Book.)  The CCITT has recently
  2940.     changed its name to ITU-TS; we maintain the familiar name.  !CCIR
  2941.  
  2942. CELP: code-excited linear prediction; audio encoding method for low-bit
  2943.     rate codecs; !LPC.
  2944.  
  2945. CD: compact disc.
  2946.  
  2947. chrominance: color information in a video image.   For !H.261, color is
  2948.     encoded as two color differences:   CR (``red'') and CB (``blue'').
  2949.     !luminance
  2950.  
  2951. CIF: common interchange format; interchange format for video images with
  2952.     288 lines with 352 pixels per line of luminance and 144 lines with 176
  2953.     pixel per line of chrominance information.  !QCIF, SCIF
  2954.  
  2955. CLNP: ISO connectionless network-layer protocol (ISO 8473), similar in
  2956.     functionality to !IP.
  2957.  
  2958. codec: short for coder/decoder; device or software that ! encodes and
  2959.     decodes audio or video information.
  2960.  
  2961. companding: contraction of compressing and expanding; reducing the dynamic
  2962.     range of audio or video by a non-linear transformation of the sample
  2963.     values.   The best known methods for audio are mu-law, used in North
  2964.     America, and A-law, used in Europe and Asia.   !G.711 For a given
  2965.     number of bits, companded data uses a greater number of binary codes to
  2966.     represent small signal levels than linear data, resulting in a greater
  2967.     dynamic range at the expense of a poorer signal-to-nose ratio. [25]
  2968.  
  2969. DAT: digital audio tape.
  2970.  
  2971. decimation: reduction of sample rate by removal of samples [IMA].
  2972.  
  2973. delay jitter: Delay jitter is the variation in end-to-end network delay,
  2974.     caused  principally  by  varying  media  access  delays,  e.g.,  in  an
  2975.     Ethernet, and queueing delays.  Delay jitter needs to be compensated
  2976.     by adding a variable delay (refered to as ! playout delay) at the
  2977.     receiver.
  2978.  
  2979.  
  2980.  
  2981. H. Schulzrinne                  Expires 03/01/94                  [Page 54]
  2982. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  2983.  
  2984. DVI: (trademark)  digital  video  interactive.     Audio/video  compression
  2985.     technology developed by Intel's DVI group.  [IMA]
  2986.  
  2987. dynamic range: a ratio of the largest encodable audio signal to the
  2988.     smallest encodable signal, expressed in decibels.   For linear audio
  2989.     data types, the dynamic range is approximately six times the number of
  2990.     bits, measured in dB.
  2991.  
  2992. encoding: transformation of the media content for transmission, usually to
  2993.     save bandwidth, but also to decrease the effect of transmission errors.
  2994.     Well-known encodings are G.711 (mu-law PCM), and ADPCM for audio, JPEG
  2995.     and MPEG for video.  ! encryption
  2996.  
  2997. encryption: transformation of the media content to ensure that only the
  2998.     intended recipients can make use of the information.  ! encoding
  2999.  
  3000. end system: host where conference participants are located.   RTP packets
  3001.     received by an end system are played out, but not forwarded to other
  3002.     hosts (in a manner visible to RTP).
  3003.  
  3004. FIR: finite (duration) impulse response.  A signal processing filter that
  3005.     does not use any feedback components [IMA].
  3006.  
  3007. frame: unit of information.  Commonly used for video to refer to a single
  3008.     picture.  For audio, it refers to a data that forms a encoding unit.
  3009.     For example, an LPC frame consists of the coefficients necessary to
  3010.     generate a specific number of audio samples.
  3011.  
  3012. frequency response: a system's ability to encode the spectral content of
  3013.     audio data.  The sample rate has to be at least twice as large as the
  3014.     maximum possible signal frequency.
  3015.  
  3016. G.711: ! CCITT recommendation for ! PCM audio encoding at 64 kb/s using
  3017.     mu-law or A-law companding.
  3018.  
  3019. G.721: ! CCITT recommendation for 32 kbit/s adaptive differential pulse
  3020.     code modulation (! ADPCM, PCM).
  3021.  
  3022. G.722: ! CCITT recommendation for audio coding at 64 kbit/s; the audio
  3023.     bandwidth is 7 kHz instead of 3.5 kHz for G.711, G.721, G.723 and
  3024.     G.728.
  3025.  
  3026. G.723: ! CCITT recommendation for extensions of Recommendation G.721
  3027.     adapted  to  24  and  40  kbit/s  for  digital  circuit  multiplication
  3028.     equipment.
  3029.  
  3030. G.728: ! CCITT recommendation for voice coding using code-excited linear
  3031.     prediction (CELP) at 16 kbit/s.
  3032.  
  3033. G.764: ! CCITT recommendation for packet voice; specifies both ! HDLC-like
  3034.     data link and network layer.   In the draft stage, this standard was
  3035.  
  3036. H. Schulzrinne                  Expires 03/01/94                  [Page 55]
  3037. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  3038.  
  3039.     referred to as G.PVNP. The standard is primarily geared towards digital
  3040.     circuit multiplication equipment used by telephone companies to carry
  3041.     more voice calls on transoceanic links.
  3042.  
  3043. G.821: !  CCITT  recommendation  for  the  error  performance  of  an
  3044.     international digital connection forming part of an integrated services
  3045.     digital network.
  3046.  
  3047. G.822: ! CCITT recommendation for the controlled !slip rate objective on
  3048.     an international digital connection.
  3049.  
  3050. G.PVNP: designation of CCITT recommendation ! G.764 while in draft status.
  3051.  
  3052. GOB: (H.261) groups of blocks; a !CIF picture is divided into 12 GOBs, a
  3053.     QCIF into 3 GOBs.   A GOB is composed of 3 macro blocks (!MB) and
  3054.     contains luminance and chrominance information for 8448 pixels.
  3055.  
  3056. GSM: Group Speciale Mobile.   In general, designation for European mobile
  3057.     telephony standard.   In particular, often used to denote the audio
  3058.     coding used.   Formally known as the European GSM 06.10 provisional
  3059.     standard for full-rate speech transcoding, prI-ETS 300 036.  It uses
  3060.     RPE/LTP (residual pulse excitation/long term prediction) at 13 kb/s
  3061.     using frames of 160 samples covering 20 ms.
  3062.  
  3063. H.261: ! CCITT recommendation for the compression of motion video at rates
  3064.     of Px64 kb/s (where p=1:::30.   Originally intended for narrowband
  3065.     !ISDN.
  3066.  
  3067. hangover:  [26] Audio data transmitted after the silence detector indicates
  3068.     that no audio data is present.   Hangover ensures that the ends of
  3069.     words, important for comprehension, are transmitted even though they
  3070.     are often of low energy.
  3071.  
  3072. HDLC: high-level data link control;  standard data link layer protocol
  3073.     (closely related to LAPD and SDLC).
  3074.  
  3075. IMA: Interactive  Multimedia  Assocation;  trade  association  located  in
  3076.     Annapolis, MD.
  3077.  
  3078. ICMP: Internet Control Message Protocol;  ICMP is an extension to the
  3079.     Internet Protocol.   It allows for the generation of error messages,
  3080.     test packets and informational messages related to ! IP.
  3081.  
  3082. in-band: signaling information is carried together (in the same channel or
  3083.     packet) with the actual data.  ! out-of-band.
  3084.  
  3085. interpolation: increase  in  sample  rate  by  introduction  of  processed
  3086.     samples.
  3087.  
  3088. IP: internet protocol; the Internet Protocol, defined in RFC 791, is the
  3089.     network layer for the TCP/IP Protocol Suite.  It is a connectionless,
  3090.  
  3091. H. Schulzrinne                  Expires 03/01/94                  [Page 56]
  3092. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  3093.  
  3094.     best-effort packet switching protocol [27].
  3095.  
  3096. IP address: four-byte binary host interface identifier used by !IP for
  3097.     addressing.    An IP address consists of a network portion and a
  3098.     host portion.   RTP treats IP addresses as globally unique, opaque
  3099.     identifiers.
  3100.  
  3101. IPv4: current version (4) of ! IP.
  3102.  
  3103. ISDN: integrated services digital network; refers to an end-to-end circuit
  3104.     switched digital network intended to replace the current telephone
  3105.     network.   ISDN offers circuit-switched bandwidth in multiples of 64
  3106.     kb/s (B or bearer channel), plus a 16 kb/s packet-switched data (D)
  3107.     channel.
  3108.  
  3109. ISO: International  Standards  Organization.     A  voluntary,  nontreaty
  3110.     organization  founded  in  1946.     Its  members  are  the  national
  3111.     standardards organizations of the 89 member countries, including ANSI
  3112.     for the U.S. (Tanenbaum)
  3113.  
  3114. ISO 10646: !ISO standard for the encoding of characters from all languages
  3115.     into a single 32-bit code space (Universal Character Set).    For
  3116.     transmission and storage, a one-to-five octet code (UTF) has been
  3117.     defined which is upwardly compatible with US-ASCII.
  3118.  
  3119. JPEG: ISO/CCITT joint photographic experts group.    Designation of a
  3120.     variable-rate compression algorithm using discrete cosine transforms
  3121.     for still-frame color images.
  3122.  
  3123. jitter: ! delay jitter.
  3124.  
  3125. linear encoding: a mapping from signal values to binary codes where each
  3126.     binary level represents the same signal increment !companding.
  3127.  
  3128. loosely controlled conference: Participants  can  join  and  leave  the
  3129.     conference without connection establishment or notifying a conference
  3130.     moderator.  The identity of conference participants may or may not be
  3131.     known to other participants.  See also:  tightly controlled conference.
  3132.  
  3133. low-pass filter: a signal processing function that removes spectral content
  3134.     above a cutoff frequency.  [IMA]
  3135.  
  3136. LPC: linear predictive coder.  Audio encoding method that models speech as
  3137.     a parameters of a linear filter; used for very low bit rate codecs.
  3138.  
  3139. luminance: brightness information in a video image.    For black-and-
  3140.     white (grayscale) images,  only luminance information is required.
  3141.     !chrominance
  3142.  
  3143. MB: (H.261) macroblock,  consisting of six blocks,  four eight-by-eight
  3144.     luminance blocks and two chrominance blocks.
  3145.  
  3146. H. Schulzrinne                  Expires 03/01/94                  [Page 57]
  3147. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  3148.  
  3149. MPEG: ISO/CCITT motion picture experts group JTC1/SC29/WG11.  Designates a
  3150.     variable-rate compression algorithm for full motion video at low bit
  3151.     rates; uses both intraframe and interframe coding.  It defines a bit
  3152.     stream for compressed video and audio optimized to fit into a bandwidth
  3153.     (data rate) of 1.5 Mbits/s.  This rate is special because it is the
  3154.     data rate of (uncompressed) audio CD's and DAT's.   The draft is in
  3155.     three parts, video, audio, and systems, where the last part gives the
  3156.     integration of the audio and video streams with the proper timestamping
  3157.     to allow synchronization of the two.   MPEG phase II is to define a
  3158.     bitstream for video and audio coded at around 3 to 10 Mbits/s.
  3159.  
  3160.     MPEG compresses YUV SIF images.   Motion is predicted from frame to
  3161.     frame, while DCTs of the difference signal with quantization make use
  3162.     of spatial redundancy.  DCTs are performed on 8 by 8 blocks, the motion
  3163.     prediction on 16 by 16 blocks of the luminance signal.  Quantization
  3164.     changes for every 16 by 16 macroblock.
  3165.  
  3166.     There are three types of coded frames.  Intra (``I'') frames are coded
  3167.     without motion prediction, Predicted (``P'') frames are difference
  3168.     frames to the last P or I frame.   Each macroblock in a P frame can
  3169.     either come with a vector and difference DCT coefficients for a close
  3170.     match in the last I or P frame, or it can just be intra coded (like
  3171.     in the I frames) if there was no good match.  Lastly, there are "B"
  3172.     or bidirectional frames.  They are predicted from the closest two I or
  3173.     P frames, one in the past and one in the future.  These are searched
  3174.     for matching blocks in those frames, and three different things tried
  3175.     to see which works best:  the forward vector, the backward vector, and
  3176.     the average of the two blocks from the future and past frames, and
  3177.     subtracting that from the block being coded.   If none of those work
  3178.     well, the block is intra-coded.
  3179.  
  3180.     There are 12 frames from I to I, based on random access requirements.
  3181.  
  3182. MPEG-1: Informal name of proposed !MPEG (ISO standard DIS 1172).
  3183.  
  3184. media source: entity (user and host) that produced the media content.
  3185.     It is the entity that is shown as the active participant by the
  3186.     application.
  3187.  
  3188. MTU: maximum transmission unit; the largest frame length which may be sent
  3189.     on a physical medium.
  3190.  
  3191. Nevot: network voice terminal; application written by the author.
  3192.  
  3193. network source: entity denoted by address and port number from which the !
  3194.     end system receives the RTP packet and to which the end system send any
  3195.     RTP packets for that conference in return.
  3196.  
  3197. NTP timestamp: ``NTP  timestamps  are  represented  as  a  64-bit  unsigned
  3198.     fixed-point number, in seconds relative to 0 hours on 1 January 1900.
  3199.     The integer part is in the first 32 bits and the fraction part in the
  3200.  
  3201. H. Schulzrinne                  Expires 03/01/94                  [Page 58]
  3202. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  3203.  
  3204.     last 32 bits.'' [13] NTP timestamps do not include leap seconds, i.e.,
  3205.     each and every day contains exactly 86,400 NTP seconds.
  3206.  
  3207. NVP: network voice protocol; original packet format used in early packet
  3208.     voice experiments; defined in [1].
  3209.  
  3210. octet: An octet is an 8-bit datum, which may contain values 0 through 255
  3211.     decimal.   Commonly used in ISO and CCITT documents, also known as a
  3212.     byte.
  3213.  
  3214. OSI: Open System Interconnection;  a suite of protocols,  designed by
  3215.     ISO committees,  to be the international standard computer network
  3216.     architecture.
  3217.  
  3218. out of band: signaling and control information is carried in a separate
  3219.     channel or separate packets from the actual data.  For example, ICMP
  3220.     carries control information out-of-band, that is, as separate packets,
  3221.     for IP, but both ICMP and IP usually use the same communication channel
  3222.     (in band).
  3223.  
  3224. parametric coder: coder that encodes parameters of a model representing the
  3225.     input signal.  For example, LPC models a voice source as segments of
  3226.     voice and unvoiced speech, represented by a set of
  3227.  
  3228. parametric coder: coder that encodes parameters of a model representing the
  3229.     input signal.  For example, LPC models a voice source as segments of
  3230.     voice and unvoiced speech, represented by filter parameters.  Examples
  3231.     include LPC, CELP and GSM. !waveform coder.
  3232.  
  3233. PCM: pulse-code modulation; speech coding where speech is represented by a
  3234.     given number of fixed-width samples per second.   Often used for the
  3235.     coding employed in the telephone network:  64,000 eight-bit samples per
  3236.     second.
  3237.  
  3238. pel, pixel: picture element.    ``Smallest graphic element that can be
  3239.     independently addressed within a picture; (an alternative term for
  3240.     raster graphics element).''  (T.411)
  3241.  
  3242. playout: Delivery of the medium content to the final consumer within the
  3243.     receiving host.  For audio, this implies digital-to-analog conversion,
  3244.     for video display on a screen.
  3245.  
  3246. playout unit: A playout unit is a group of packets sharing a common
  3247.     timestamp.   (Naturally, packets whose timestamps are identical due
  3248.     to timestamp wrap-around are not considered part of the same playout
  3249.     unit.)  For voice, the playout unit would typically be a single voice
  3250.     segment, while for video a video frame could be broken down into
  3251.     subframes, each consisting of packets sharing the same timestamp and
  3252.     ordered by some form of sequence number.  !synchronization unit
  3253.  
  3254.  
  3255.  
  3256. H. Schulzrinne                  Expires 03/01/94                  [Page 59]
  3257. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  3258.  
  3259. plesiochronous: ``The essential characteristic of time-scales or signals
  3260.     such that their corresponding significant instants occur at nominally
  3261.     the same rate, any variation in rate being constrained within specified
  3262.     limits.   Two signals having the same nominal digit rate, but not
  3263.     stemming from the same clock or homochronous clocks,  are usually
  3264.     plesiochronous.   There is no limit to the time relationship between
  3265.     corresponding significant instants.''   (G.701, Q.9) In other words,
  3266.     plesiochronous  clocks  have  (almost)  the  same  rate,  but  possibly
  3267.     different phase.
  3268.  
  3269. pulse code modulation (PCM): ``A process in which a signal is sampled, and
  3270.     each sample is quantized independently of other samples and converted
  3271.     by encoding to a digital signal.''  (G.701)
  3272.  
  3273. PVP: packet video protocol; extension of ! NVP to video data [28]
  3274.  
  3275. QCIF: quarter common interchange format; format for exchanging video images
  3276.     with half as many lines and half as many pixels per line as CIF, i.e.,
  3277.     luminance information is coded at 144 lines and 176 pixels per line.
  3278.     !CIF, SIF
  3279.  
  3280. RTCP: real-time control protocol; adjunct to ! RTP.
  3281.  
  3282. RTP: real-time transport protocol; discussed in this memorandum.
  3283.  
  3284. sampling rate: ``The number of samples taken of a signal per unit time.''
  3285.     (G.701)
  3286.  
  3287. SB: subband; as in subband codec.  Audio or video encoding that splits the
  3288.     frequency content of a signal into several bands and encodes each band
  3289.     separately, with the encoding fidelity matched to human perception for
  3290.     that particular frequency band.
  3291.  
  3292. SCIF: standard video interchange format;  consists of four !CIF images
  3293.     arranged in a square.  !CIF, QCIF
  3294.  
  3295. SIF: standard interchange format; format for exchanging video images of 240
  3296.     lines with 352 pixels each for NTSC, and 288 lines by 352 pixels for
  3297.     PAL and SECAM. At the nominal field rates of 60 and 50 fields/s, the
  3298.     two formats have the same data rate.  !CIF, QCIF
  3299.  
  3300. slip: In digital communications, slip refers to bit errors caused by the
  3301.     different clock rates of nominally synchronous sender and receiver.  If
  3302.     the sender clock is faster than the receiver clock, occasionally a bit
  3303.     will have to be dropped.  Conversely, a faster receiver will need to
  3304.     insert extra bits.   The problem also occurs if the clock rates of
  3305.     encoder and decoder are not matched precisely.  Information loss can be
  3306.     avoided if the duration of pauses (silence periods between talkspurts
  3307.     or the inter-frame duration) can be adjusted by the receiver.  ``The
  3308.     repetition or deletion of a block of bits in a synchronous or
  3309.     plesiochronous bit stream due to a discrepancy in the read and write
  3310.  
  3311. H. Schulzrinne                  Expires 03/01/94                  [Page 60]
  3312. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  3313.  
  3314.     rates at a buffer.''  (G.810) !G.821, G.822
  3315.  
  3316. ST-II: stream  protocol;   connection-oriented  unreliable,  non-sequenced
  3317.     packet-oriented network and transport protocol with process demulti-
  3318.     plexing and provisions for establishing flow parameters for resource
  3319.     control; defined in RFC 1190 [29,30].
  3320.  
  3321. Super CIF: video format defined in Annex IV of !H.261 (1992), comprising
  3322.     704 by 576 pixels.
  3323.  
  3324. synchronization unit: A  synchronization  unit  consists  of  one  or  more
  3325.     !playout units that, as a group, share a common fixed delay between
  3326.     generation and playout of each part of the group.  The delay may change
  3327.     at the beginning of such a synchronization unit.   The most common
  3328.     synchronization units are talkspurts for voice and frames for video
  3329.     transmission.
  3330.  
  3331. TCP: transmission control protocol; an Internet Standard transport layer
  3332.     protocol  defined  in  RFC  793.     It  is  connection-oriented  and
  3333.     stream-oriented, as opposed to UDP [31].
  3334.  
  3335. TPDU: transport protocol data unit.
  3336.  
  3337. tightly controlled conference: Participants can join the conference only
  3338.     after an invitation from a conference moderator.  The identify of all
  3339.     conference participants is known to the moderator.  !loosely controlled
  3340.     conference.
  3341.  
  3342. transcoder: device  or  application  that  translates  between  several
  3343.     encodings, for example between ! LPC and ! PCM.
  3344.  
  3345. UDP: user  datagram  protocol;  unreliable,  non-sequenced  connectionless
  3346.     transport protocol defined in RFC 768 [32].
  3347.  
  3348. vat: visual audio tool written by Steve McCanne and Van Jacobson, Lawrence
  3349.     Berkeley Laboratory.
  3350.  
  3351. vt: voice terminal software written at the Information Sciences Institute.
  3352.  
  3353. VMTP: Versatile message transaction protocol; defined in RFC 1045 [33].
  3354.  
  3355. waveform coder: a  coder  that  tries  to  reproduce  the  waveform  after
  3356.     decompression; examples include PCM and ADPCM for audio and video and
  3357.     discrete-cosine-transform based coders for video; !parametric coder.
  3358.  
  3359. Y: Common abbreviation for the luminance or luma signal.
  3360.  
  3361. YCbCr: YCbCr coding is employed by D-1 component video equipment.
  3362.  
  3363.  
  3364.  
  3365.  
  3366. H. Schulzrinne                  Expires 03/01/94                  [Page 61]
  3367. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  3368.  
  3369. B Address of Author
  3370.  
  3371.  
  3372. Henning Schulzrinne
  3373. AT&T Bell Laboratories
  3374. MH 2A244
  3375. 600 Mountain Avenue
  3376. Murray Hill, NJ 07974-0636
  3377. telephone:  +1 908 582 2262
  3378. facsimile:  +1 908 582 5809
  3379. electronic mail:  hgs@research.att.com
  3380.  
  3381.  
  3382. References
  3383.  
  3384.  
  3385.  [1] D. Cohen, ``A network voice protocol:  NVP-II,'' technical report,
  3386.      University of Southern California/ISI, Marina del Ray, California,
  3387.      Apr. 1981.
  3388.  
  3389.  [2] N.  Borenstein  and  N.  Freed,  ``MIME  (multipurpose  internet  mail
  3390.      extensions) mechanisms for specifying and describing the format of
  3391.      internet message bodies,'' Network Working Group Request for Comments
  3392.      RFC 1341, Bellcore, June 1992.
  3393.  
  3394.  [3] R. Want, A. Hopper, V. Falcao, and J. Gibbons, ``The active badge
  3395.      location system,'' ACM Transactions on Information Systems, vol. 10,
  3396.      pp. 91--102, Jan. 1992.
  3397.  
  3398.  [4] R. Want and A. Hopper,  ``Active badges and personal interactive
  3399.      computing objects,'' Technical Report ORL 92-2, Olivetti Research,
  3400.      Cambridge, England, Feb. 1992. also in IEEE Transactions on Consumer
  3401.      Electronics, Feb. 1992.
  3402.  
  3403.  [5] J. G. Gruber and L. Strawczynski, ``Subjective effects of variable
  3404.      delay and speech clipping in dynamically managed voice systems,'' IEEE
  3405.      Transactions on Communications, vol. COM-33, pp. 801--808, Aug. 1985.
  3406.  
  3407.  [6] N. S. Jayant, ``Effects of packet losses in waveform coded speech and
  3408.      improvements due to an odd-even sample-interpolation procedure,'' IEEE
  3409.      Transactions on Communications, vol. COM-29, pp. 101--109, Feb. 1981.
  3410.  
  3411.  [7] D. Minoli, ``Optimal packet length for packet voice communication,''
  3412.      IEEE Transactions on Communications, vol. COM-27, pp. 607--611, Mar.
  3413.      1979.
  3414.  
  3415.  [8] V.  Jacobson,  ``Compressing  TCP/IP  headers  for  low-speed  serial
  3416.      links,'' Network Working Group Request for Comments RFC 1144, Lawrence
  3417.      Berkeley Laboratory, Feb. 1990.
  3418.  
  3419.  
  3420.  
  3421. H. Schulzrinne                  Expires 03/01/94                  [Page 62]
  3422. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  3423.  
  3424.  [9] P. Francis, ``A near-term architecture for deploying Pip,'' IEEE
  3425.      Network, vol. 7, pp. 30--37, May 1993.
  3426.  
  3427. [10] IMA Digital Audio Focus and Technical Working Groups, ``Recommended
  3428.      practices for enhancing digital audio compatibility in multimedia
  3429.      systems,'' tech. rep., Interactive Multimedia Association, Annapolis,
  3430.      Maryland, Oct. 1992.
  3431.  
  3432. [11] W. A. Montgomery, ``Techniques for packet voice synchronization,''
  3433.      IEEE  Journal  on  Selected  Areas  in  Communications,  vol.  SAC-1,
  3434.      pp. 1022--1028, Dec. 1983.
  3435.  
  3436. [12] D. Cohen, ``A protocol for packet-switching voice communication,''
  3437.      Computer Networks, vol. 2, pp. 320--331, September/October 1978.
  3438.  
  3439. [13] D. L. Mills, ``Network time protocol (version 3) -- specification,
  3440.      implementation and analysis,''  Network Working Group Request for
  3441.      Comments RFC 1305, University of Delaware, Mar. 1992.
  3442.  
  3443. [14] ISO/IEC JTC 1, ISO/IEC DIS 11172:  Information technology --- coding
  3444.      of moving pictures and associated audio for digital storage media up
  3445.      to about 1.5 Mbit/s. International Organization for Standardization
  3446.      and International Electrotechnical Commission, 1992.
  3447.  
  3448. [15] L. Delgrossi, C. Halstrick, R. G. Herrtwich, and H. St"uttgen, ``HeiTP:
  3449.      a transport protocol for ST-II,'' in Proceedings of the Conference on
  3450.      Global Communications (GLOBECOM), (Orlando, Florida), pp. 1369--1373
  3451.      (40.02), IEEE, Dec. 1992.
  3452.  
  3453. [16] G. J. Holzmann, Design and Validation of Computer Protocols. Englewood
  3454.      Cliffs, New Jersey:  Prentice Hall, 1991.
  3455.  
  3456. [17] A. Nakassis, ``Fletcher's error detection algorithm:  how to implement
  3457.      it efficiently and how to avoid the most common pitfalls,'' ACM
  3458.      Computer Communication Review, vol. 18, pp. 63--88, Oct. 1988.
  3459.  
  3460. [18] J. G. Fletcher, ``An arithmetic checksum for serial transmission,''
  3461.      IEEE Transactions on Communications, vol. COM-30, pp. 247--252, Jan.
  3462.      1982.
  3463.  
  3464. [19] J. Linn, ``Privacy enhancement for Internet electronic mail:  Part III
  3465.      --- algorithms, modes and identifiers,'' Network Working Group Request
  3466.      for Comments RFC 1115, IETF, Aug. 1989.
  3467.  
  3468. [20] D. Balenson, ``Privacy enhancement for internet electronic mail:  Part
  3469.      III: Algorithms,  modes,  and identifiers,''  Network Working Group
  3470.      Request for Comments RFC 1423, IETF, Feb. 1993.
  3471.  
  3472. [21] S. Kent, ``Privacy enhancement for internet electronic mail:  Part II:
  3473.      Certificate-based key management,'' Network Working Group Request for
  3474.      Comments RFC 1422, IETF, Feb. 1993.
  3475.  
  3476. H. Schulzrinne                  Expires 03/01/94                  [Page 63]
  3477. INTERNET-DRAFT         draft-ietf-avt-issues-01.txt        October 20, 1993
  3478.  
  3479. [22] J. Linn, ``Privacy enhancement for Internet electronic mail:  Part
  3480.      I --- message encipherment and authentication procedures,'' Network
  3481.      Working Group Request for Comments RFC 1113, IETF, Aug. 1989.
  3482.  
  3483. [23] R. Rivest, ``The MD5 message-digest algorithm,'' Network Working Group
  3484.      Request for Comments RFC 1321, IETF, Apr. 1992.
  3485.  
  3486. [24] North American Directory Forum, ``A naming scheme for c=US,'' Network
  3487.      Working Group Request for Comments RFC 1255, North American Directory
  3488.      Forum, Sept. 1991.
  3489.  
  3490. [25] N. S. Jayant and P. Noll, Digital Coding of Waveforms. Englewood
  3491.      Cliffs, New Jersey:  Prentice Hall, 1984.
  3492.  
  3493. [26] P. T. Brady, ``A model for generating on-off speech patterns in
  3494.      two-way conversation,''  Bell System Technical Journal,  vol. 48,
  3495.      pp. 2445--2472, Sept. 1969.
  3496.  
  3497. [27] J. Postel, ``Internet protocol,'' Network Working Group Request for
  3498.      Comments RFC 791, Information Sciences Institute, Sept. 1981.
  3499.  
  3500. [28] R. Cole, ``PVP - a packet video protocol,'' W-Note 28, Information
  3501.      Sciences Institute, University of Southern California, Los Angeles,
  3502.      California, Aug. 1981.
  3503.  
  3504. [29] C. Topolcic, S. Casner, C. Lynn, Jr., P. Park, and K. Schroder,
  3505.      ``Experimental internet stream protocol, version 2 (ST-II),'' Network
  3506.      Working  Group  Request  for  Comments  RFC  1190,  BBN  Systems  and
  3507.      Technologies, Oct. 1990.
  3508.  
  3509. [30] C. Topolcic, ``ST II,'' in First International Workshop on Network and
  3510.      Operating System Support for Digital Audio and Video, no. TR-90-062 in
  3511.      ICSI Technical Reports, (Berkeley, California), 1990.
  3512.  
  3513. [31] J. B. Postel, ``DoD standard transmission control protocol,'' Network
  3514.      Working Group Request for Comments RFC 761, Information Sciences
  3515.      Institute, Jan. 1980.
  3516.  
  3517. [32] J. B. Postel,  ``User datagram protocol,''  Network Working Group
  3518.      Request for Comments RFC 768, ISI, Aug. 1980.
  3519.  
  3520. [33] D.  R.  Cheriton,  ``VMTP:  Versatile  Message  Transaction  Protocol
  3521.      specification,'' in Network Information Center RFC 1045, (Menlo Park,
  3522.      California), pp. 1--123, SRI International, Feb. 1988.
  3523.  
  3524.  
  3525.  
  3526.  
  3527.  
  3528.  
  3529.  
  3530.  
  3531. H. Schulzrinne                  Expires 03/01/94                  [Page 64]
  3532.